VB winsock控件连接PLC的问题?请教高手:在用winsock控件读取PLC中数据的时候:VB codedim arrivData as int
VB winsock控件连接PLC的问题?
请教高手:
在用winsock控件读取PLC中数据的时候:
- VB code
dim arrivData as integer '触发winsock1_DataArrival事件后的PLC返回值,转换成十进制的数值winsock1.connectsend_Data(var_1) '向PLC发送指令的函数,var_1是待读取的一个地址变量msgbox arrivData winsock1.connectsend_Data(var_2) '向PLC发送指令的函数,var_2是待读取的的地址变量msgbox arrivData
运行后发现,两次输出的数据相同,如果改成下面的代码:
- VB code
dim arrivData as integer '触发winsock1_DataArrival事件后的PLC返回值,转换成十进制的数值winsock1.connectsend_Data(var_1) '向PLC发送指令的函数,var_1是待读取的一个地址变量msgbox arrivData winsock1.closewinsock1.connectwinsock1.connectsend_Data(var_2) '向PLC发送指令的函数,var_2是待读取的的地址变量msgbox arrivData
运行后发现,两次输出的数值有时相同,有时不同,且有时是正确的输出,有时又不正确,请教高手如何解决?
谢谢~~
[解决办法]
建议取消MSGBOX,改用标签来显示.其它需要通信协议才能判断.
[解决办法]
通讯协议:TCP判断连接状态,如果已经连接,则可以发送
UDP无法判断连接状态,可以直接发送。
两次发送要做一定的延时。
不要用msgbox来观查变量值
用debug.print arrivData 来观查变量值
