用台达B10S411与一台SS2 PLC和其它控制器同时通讯,SS2用com2口没有问题;控制器用com1口,使用画面cycle宏,通讯口初始化可以通过,但是发送数据putchars()和getchars()两个指令都不能正常工作。几个问题咨询一下高手:
A:同样的数据串用串口调试工具直接发给控制器,控制器可以接收,并返回数据,说明控制器通讯正常,通讯指令字符串也应该没有问题吧;
B:用串口调试接到触摸屏com1口,收不到触摸屏的任何数据,是什么原因?
C:宏通讯方面的例程哪位可以给几个学习一下?
拜托高手指点一下,谢了!!!
1、首先除非你将触摸屏通讯口定义成MODBUS SLAVE,否则屏是作为主站,串口调试工具必须设成从站模式,然后由屏通过宏指令发送代码,再由调试工具接收字符;
2、使用宏指令做COM1口自由通讯时,首先在选项——设置通讯参数中,COM1口下不能建立任何连线,然后COM1口的初始化一般会放到Initial宏中,只要上电初始化做一次就够了;
3、PUTCHARS和GETCHARS等指令在执行的过程中要考虑时序的问题,确保每条字符串收发指令确实执行完成,一般粗略一点的就在两条指令之间加上DELAY指令确保时序错开;
4、最后就是确定一下接线。
这是initial宏:
$100 = 55H
$101 = AAH
$102 = 1H
$103 = 0H
$104 = 3H
$105 = 0H
$106 = 0H
$107 = 1H
$108 = 3H
$10 = INITCOM(0, 0, 1, 0, 0, 6, 0)
这个是画面cycle宏:
SELECTCOM(0)
$12 = PUTCHARS($100, 9, 500)
delay 500
$14 = GETCHARS($200, 40, 500)
delay 10000
在画面设置监控$10 $12 $14,$10返回1,说明初始化成功,$12在1和0之间周期变化,说明也是可以执行的,但是$14就不会返回1,一直是0。问题出在哪里百思不得其解啊。