我公司一直用台达的界面,都是和PLC直接通讯,没有问题。现在我们自己搞了一块板,想用台达界面做上位机,控制板的运行。
但是通讯的时候遇到了一下问题:
1.用INITCOM指令时候,等号前面的那个地址如何选取?使用手册上没有说明,是不是可以随便选取一个就OK了?
2.PUTCHARS和GETCHARS等号前面的地址如何选取?就是返回值的地址,如果我不需要返回值是不是就可以随便选取?
3.通讯的时候是不是初始化通讯口之后就可以直接用PUTCHARS进行输出数据了呢?
4.如果我要输出$20~$25的数据,用PUTCHARS的时候那个数据长度(V3)是6还是12?就是说一个$20相当于几个字节?
这个程序少了选择com口
呵呵 比如你想用com2口送出去,虽然你初始化了com口 但还需要选择com2口送出
应该是
$50 = INITCOM(1, 0, 1, 0, 0, 6, 0) #初始化com口,$50是com口有没有被初始化成功,成功为1不成功为0
SELECTCOM(1) #选择com2口作为数据发送和接受口,0 代表com1 1 代表com2
$60 = PUTCHARS($20, 2, 500) #数据送出$60代表送出数据成功,从$20地址开始送,连续送出2个beyt。500ms还没有送出去表示送数据失败。
$60 = PUTCHARS($20, 2, 500)
aibi,我的通讯成功了,但是美中不足的就是高低字节颠倒了,这个有没有办法搞定啊?或者哪里可以设置一下不让他颠倒?
比如我$60 = PUTCHARS($20, 4, 500),$20中存放了1234,$21中存放了1324,结果我收到了:34122413,不知道可否有办法解决?谢谢!
另外如果$20用的是Unsigned Decimal,当$20中的数值小于128是收到的是正常的,大于128时收到的就是错误的代码。
如果$20用的时Hexadecimal, 比较小的数值就没有问题,比如5678就可以显示7856,但是较大的数值比如9876却显示为FFFF7698,这是为什么呢?
请aibi有空的时候帮我瞧瞧是怎么回事,谢谢!