威纶通官方论坛

如何在宏指令中获取com2口接收的数据

[复制链接]
发表于 2019-7-3 15:07:27 | 显示全部楼层 |阅读模式
怎么能在宏指令中获取com2口接收的数据?比如我通过SetData指令传输数据,然后我想得到com2口接收的数据(文本格式),好用来比较是否传输成功,是通讯不上,还是数据范围超过下位机数据的限制,请各位指教。
发表于 2019-11-13 22:39:47 | 显示全部楼层
一般一个触摸屏硬件都会有两个COM口,COM1,COM2.
可以接两个硬件进行通讯。
在新版本的编程软件界面菜单-》常用-》系统参数,可以弹出窗口来添加硬件。

硬件的名称就可以在宏指令编辑窗口中使用。
如下为使用了硬件名称的宏指令代码:
macro_command main()
short nValue=0,nValue1=0
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, 0, 1)
GetData(nValue1, "FATEK FB/FBs/B1/B1z Series_1", D, 0, 1)
if(nValue == nValue1)then
bool on=true
SetData(on, "Local HMI", LB, 0, 1)
end if
end macro_command


另外还有一种情况,就是一个串口可能会连接多个通讯硬件,

那么这样的话就不能够通过硬件的名称来识别通讯硬件了。
我们得使用另外一种表达形式来实现。
可将PLC站号信息直接设置在地址内容中,。
例如地址格式ABC#Addr 。
其中ABC表示PLC 所使用的站号,必须大于等于0,且小于等于 255。
Addr指定 PLC的地址,两个数据之间以  “#”  做为区隔。
如我们添加元件时,地址可以按下图填写,表示站号1的硬件地址。


在使用宏指令时,不同站号的PLC可以如下使用。
short nValue=0,nValue1=0
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, 1#0, 1)
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, 2#0, 1)
分别表示站号1和2的硬件地址D0.


最后威纶还提供一个站号系统寄存器来设置通讯硬件的站号。

在使用时宏代码里形式如下:
short nValue=0,nValue1=0
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, var1#0, 1)
GetData(nValue, "FATEK FB/FBs/B1/B1z Series", D, var2#0, 1)
元件地址里形式如下:

这样我们修改对应的,例如VAR1的寄存器LW10001,
就可以指定具体的通讯硬件站号了。
可以看出威纶通的功能还是很丰富的。

希望能帮上你。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-11-21 20:30

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表