定义 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 配置为针对任何组或偏移量激发。
- 定义一个触发器变量,用于指示何时将主动读取发送到 deviceWISE。
triggerSend: BOOL := FALSE; - 定义一个名为 deviceWISE_ADSREAD 的 ADS 读取函数,并将其设置为基于触发器。
SendMessageTrigger: F_TRIG;
deviceWISE_ADSREAD: ADSREAD; - 使用以下参数初始化函数:
- 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 配置为针对任何组或偏移量激发。
- 定义一个触发器变量,用于指示何时将主动读取发送到 deviceWISE。
triggerSend: BOOL := FALSE; - 定义一个名为 deviceWISE_ADSWRITE 的 ADS 写入函数,并将其设置为基于触发器。
SendMessageTrigger: F_TRIG;
deviceWISE_ADSWRITE: ADSWRITE; - 使用以下参数初始化函数:
- 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 写入行为。