请教通讯协议程序分析

我编写了一自由口协议程序,建立传感器与PLC之间的通讯,可是调试时没能接收到数据,不知是何原因,现将程序贴出来,麻烦各位帮忙分析下啊,不甚感激了。
 MAIN:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.1
 CALL   SBR0
 Network 2 
 LD     SM0.0
 ATH    VB203, VB300, 12(接收到的是16进制表示的ASCII,因此与转换成十进制数,如30H转换成0)
 SBR0:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.1
 MOVB   16#09, SMB30
 MOVB   16#9C, SMB87
 MOVW   100, SMW92
 MOVW   0, SMW90
 MOVB   100, SMB94
 ENI
 ATCH   INT0, 9
 MOVB   150, SMB34
 ATCH   INT1, 10
 INT0:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.0
 RCV    VB200, 0
 MOVB   250, SMB34
 ATCH   INT1, 10
 INT1:
 Network 1 // 网络标题
 // 网络注释
 LD     SM0.0
 DTCH   10
 XMT    VB100, 0
 数据块,因为需要想传感器发送命令,即0A 0D 01 0D,不知是否在这里定义。
 VB100  4
 VB101  16#0A
 VB102  16#0D
 VB103  16#1
 VB104  16#0D
 谢谢各位了,看看程序哪里出错了,为什么接收不到数据呢,我用串口调试软件可以接收的,还请能否告知如何将16进制ASCII转换成所需要的十进制数呢,是用ATH指令吗?
 

问题补充:
补充一个问题:我用串口调试软件可以接收到232信号,但为什么就接收不到485信号呢,我接线是这样的:传感器—485接线方式(3/5/8)—-PC/PPI电缆—-台式机(串口调试软件),这种接法对吗?可就是总显示通信超时。另外,我接收到232信号是这样的:传感器—-232接线—-台式机,这样就可以接收。我还试了这样接线:传感器—232接线—PC/PPPI电缆—PLC—USB/PPI电缆—step7-micro/win,可最后在状态表监控时收到VB200在0、1之间变化,VB201显示为43H,其他以后为0,而实际上VB200应为0A,VB201应为0D,我的传感器可以通过开关设置信号输出方式(232或485),谢谢各位了。

最佳答案

先用串口软件发送0A 0D 01 0D,如果串口软件能收到传感器数据,那么再检查程序。

提问者对于答案的评价:
谢谢您 我已经建立通讯了 谢谢您在网上贴出的那个问答式通用通讯协议

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc345129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论