问题:
怎么能在宏指令中获取com2口接收的数据?
比如我通过SetData指令传输数据,然后我想得到com2口接收的数据(文本格式),
好用来比较是否传输成功,是通讯不上,还是数据范围超过下位机数据的限制,请指教。
回答:
一般一个触摸屏硬件都会有两个COM口,COM1,COM2.
可以接两个硬件进行通讯。
在新版本的编程软件界面菜单-》常用-》系统参数,可以弹出窗口来添加硬件。
如下图:
威纶通触摸屏如何在宏指令中获取com2口接收的数据
通过标识1,2,3就可以快速添加新的通讯硬件。
图中就添加了两个与屏通讯的硬件,为以作为演示来使用。
硬件的名称就可以在宏指令编辑窗口中使用。
如下为使用了硬件名称的宏指令代码:
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的硬件地址。
威纶通触摸屏如何在宏指令中获取com2口接收的数据
在使用宏指令时,不同站号的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.
最后威纶还提供一个站号系统寄存器来设置通讯硬件的站号。
如下图:
威纶通触摸屏如何在宏指令中获取com2口接收的数据
在使用时宏代码里形式如下:
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)
元件地址里形式如下:
威纶通触摸屏如何在宏指令中获取com2口接收的数据
这样我们修改对应的,例如VAR1的寄存器LW10001,
就可以指定具体的通讯硬件站号了。
可以看出威纶通的功能还是很丰富的。
希望能帮上你。
如果初始使用威纶通触摸屏,可以下载我录制的两套视频教程,
可以快速的熟悉威纶通触摸屏的使用。
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|