定义 CODESYS 主动提供的消息

以下部分介绍如何在 TwinCAT 3 PLC 上定义 ADS 读取或 ADS 写入。ADS 读取将向 deviceWISE 发送数据请求。ADS 写入将数据从 PLC 发送到 deviceWISE。目前不支持源自 TwinCAT 2 的 ADS 读取和 ADS 写入。

CODESYS ADS 读取

下面的代码演示如何配置 CODESYS ADS 读取函数,当触发器变量从 0 变为 1 时,该函数将向 deviceWISE 发送读取请求。当收到具有相应索引组、索引偏移量和命令类型的消息时,deviceWISE CODESYS (ADS) 触发器将激发。触发器还可以使用通配符 -1 配置为针对任何组或偏移量激发。

  1. 定义一个触发器变量,用于指示何时将主动读取发送到 deviceWISE。
    triggerSend: BOOL := FALSE;
  2. 定义一个名为 deviceWISE_ADSREAD 的 ADS 读取函数,并将其设置为基于触发器。
    SendMessageTrigger: F_TRIG;
    deviceWISE_ADSREAD: ADSREAD;
  3. 使用以下参数初始化函数:
    • NETID - 在 deviceWISE 设备定义中定义的 AMS 发送方网络 ID
    • PORT - AMS 发送方端口
    • IDXGRP - PLC 请求的组位置
    • IDXOFFS - PLC 请求的偏移位置
    • LEN - 请求的数据大小
    • DESTADDR - 写入响应数据的变量
    • READ - 触发函数的变量
    • TMOUT - 读取请求的超时值

deviceWISE_ADSREAD( NETID:= '172.27.9.58.1.1',PORT:=30000,IDXGRP:=16#1,IDXOFFS:=16#0,LEN:=SIZEOF(boolArray),DESTADDR:=ADR(boolArray),READ:=triggerSend,TMOUT:= T#10S, );

以下屏幕截图显示了一个 TwinCAT3 项目,该项目实现了前面介绍的 ADS 读取行为。

CODESYS ADS 写入

下面的代码演示如何配置 CODESYS ADS 写入函数,当触发器变量从 0 变为 1 时,该函数将向 deviceWISE 发送一个数据块。当收到具有相应索引组、索引偏移量和命令类型的消息时,deviceWISE CODESYS (ADS) 触发器将激发。触发器还可以使用通配符 -1 配置为针对任何组或偏移量激发。

  1. 定义一个触发器变量,用于指示何时将主动读取发送到 deviceWISE。
    triggerSend: BOOL := FALSE;
  2. 定义一个名为 deviceWISE_ADSWRITE 的 ADS 写入函数,并将其设置为基于触发器。
    SendMessageTrigger: F_TRIG;
    deviceWISE_ADSWRITE: ADSWRITE;
  3. 使用以下参数初始化函数:
    • NETID - 在 deviceWISE 设备定义中定义的 AMS 发送方网络 ID
    • PORT - AMS 发送方端口
    • IDXGRP - PLC 发送的组位置
    • IDXOFFS - PLC 发送的偏移位置
    • LEN - 要发送的数据大小
    • SRCADDR - 要写入 deviceWISE 的数据
    • WRITE - 触发函数的变量
    • TMOUT - 超时值

deviceWISE_ADSWRITE(NETID:= '172.27.9.58.1.1',PORT:= 30000,IDXGRP:= 16#1,IDXOFFS:= 16#0,LEN:= SIZEOF(boolArray),SRCADDR:= ADR(boolArray),WRITE:= triggerSend,TMOUT:= T#5S,BUSY=> ,ERR=> ,ERRID=> ); 

以下屏幕截图显示了一个 TwinCAT3 项目,该项目实现了前面介绍的 ADS 写入行为。