使用串口调试助手向s7-200plc 发送数据,PLC可以收到,但PLC发送的数据,串口调试助手接受不到,为啥?是不设置有问题?通过RS232转485 电脑与PLC连接的。
问题补充:
初始化:
LD SM0.1
MOVB 16#09, SMB130
MOVB 16#B0, SMB187
MOVB 16#4C, SMB189
MOVW +5, SMW190
MOVB 100, SMB194
ATCH 端口1接受, 24
ATCH 端口1发送, 26
ENI
RCV VB0, 1
报文:
LD SM0.0
MOVB 10, VB10
BMB MB0, VB11, 11
LD SM0.0
MOVB VB1, MB10
MOVB VB2, MB11
端口1接收:
LDB= SMB186, 16#20
MOVB 20, SMB34
ATCH 定时中断20ms, 10
CRETI
NOT
RCV VB0, 1
端口1发送:
LD SM0.0
RCV VB0, 1
定时中断:
LD SM0.0
DTCH 10
XMT VB10, 1
最佳答案
串口调试助手是可以模拟主站的。但是前提是你需要知道西门子200plc的ppi通讯协议,如果你发送的数据是正确的协议格式,那么串口调试助手就能收到plc的应答,否则格式错误的请求plc是不会应答的。
有个简单的方法可以获取到数据。比如你要通过串口助手读取VD0的数据,装一个MCGS嵌入版软件,然后在设备组态里面添加一个VD0的只读通道,然后启动设备调试。硬件上准备两根串口线(232和485的都行),其中第一个串口连接到mcgs软件的设备通道上,另一个连接在串口调试助手上。启动设备调试之后,串口调试助手就会不停收到同样一组数据。将数据复制下来,通过串口助手下发到plc,就会收到plc的应答了。应答的数据需要对照协议自己解码出来。
关于plc能收到数据,但是串口助手收不到,你应该是用的自由口通讯,错误应该出在plc端的串口数据收发程序上,检查下程序。串口助手的参数很简单,如果串口助手发送的数据plc 能收到,并且是正确的数据,参数设置上应该没问题。
没有图片,我也只能提供方向性的建议!
提问者对于答案的评价:
原来是发送时没写结束字节.又遇到新问题 ,不知上位轮询怎么写VB程序.
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc159786.html