PLC200自由通信

我有一台外设,是RS232接口的,需要同PLC200通信,我将端口0用作自由端口通信,通过RS232转RS485连接,外设RS232通信参数:115200bps、1位停止位、8位数据位、1位偶校验。当PLC向外设发送16#03后,外设才能向PLC发送ASCII,格式是{XXX.XXX}.我按200PLC使用手册编写了程序但是怎么都不能通信,请教各位老师给我指点指点,谢谢
以下是程序
主程序
LD    SMO.1
MOVB       16#59, SMB30      端口0初始化   115200bps    
MOVB       16#E0, SMB87     接受控制字
MOVB        16#7B, SMB88     消息字符的开始
MOVB        16#7D, SMB89     消息字符的结束
MOVB        20,       SMB94     接受最大字符
MOVB        5,         VB10        发送最大字符
MOVB       16#03     VB11      发送字符
ATCH        INT_0:INT0,   9     中断连接发送完成中断事件
ATCH       INT_2:INT2,    23     中断连接接受完成中断事件
ENI                                       开放中断
XMT         VB10,       0           发送命令 端口0        
中断0程序
LD     SM0.0
MOVB      20,     SMB34       中断时间
ATCH      INT_1:INT1,         10
CRETI
中断1程序
LD      SM0.0
DTCH    10
RCV      VB100,    0      接受命令   端口
中断程序2
LD       SM0.0
MOVB      20,     SNB34
ATCH       INT_3:INT3,     10
CRETI
中断3程序
LD      SM0.0
DTCH    10
XTM      VB10,    0
各位老师给我看看是哪里不对,老通信不了。

最佳答案

你需要个串口调试工具软件和USB转485转换器。
1.首先把电脑当成你的外设通过485方式与PLC直接通信,在串口调试工具里面把通信参数按你上面的要求来设置,首先看看PLC有没有把16#03数据发送出来,如果发送出来了,你的串口调试工具里面可以接收到数据的。
2.模拟外设把要发送的ASCII码数据通过调试工具发送给PLC,观察SMB86寄存器状态,检查PLC有没有收到?
3.PLC收到ASCII数据后还需要ATH指令转换才能进一步使用。
通过这几个步骤,通常可以知道问题在哪里,然后再去进一步解决相应问题,希望对你有帮助。

提问者对于答案的评价:
感谢给予无私的支持,现已经做好了,谢谢

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月26日 上午12:16
下一篇 2017年8月26日

相关推荐