s7-200自由通讯时发送接收数据问题

我现在通过串口助手与s7-200进行自由口通讯 设置了起始位 数据位 结束位。
plc中初始化时已经设定了:如下
LD     SM0.0                       // 该位始终为1
MOVB   9, SMB30                    // 9600 bit/s,8位数据,无校验,1位停止位
MOVB   16#15, SMB88                // 允许接收,检测起始字符和结束字符,超时检测
MOVB   16#EC, SMB87                // 送报文起始字符0
MOVB   16#FF, SMB89                // 送报文结束字符十六进制数16#FF
MOVW   +1000, SMW92                // 接收超时时间为1s
MOVB   100, SMB94                  // 接收的最大字符数为100
ATCH   INT_0:INT0, 23              // 接收完成事件连接到中断程序0
ATCH   INT_1:INT1, 9               // 发送完成事件连接到中断程序1
ENI                                // 允许用户中断
RCV    VB100, 0                    // 端口0的接收缓冲区指针指向VB100
,通过接收中断,来控制输出点:程序如下
Network 1 
LD     SM0.0
MOVB   VB102, MB6
Network 2 
LD     M6.0
=      Q0.0
Network 3 
LD     M6.1
=      Q0.1
Network 4 
LD     M6.2
=      Q0.2
Network 5 
LD     M6.3
=      Q0.3
Network 6 
LD     M6.4
=      Q0.4
Network 7 
LD     M6.5
=      Q0.5
Network 8 
LD     M6.6
=      Q0.6
Network 9 
LD     M6.7
=      Q0.7
Network 10 
LD     M6.0                        // 如果校验正确
MOVB   5, SMB34                    // 复位校验错误指示位
ATCH   INT2, 10                    // 定时5ms以提供PPI电缆接收/发送模式切换时间
CRETI                              // 起动定时中断
                                   // 中断返回
                                   // 如果有校验错误
                                   // 将校验错误指示位置1
得到结果:
VB100接收的字节数3个 VB101起始字符16#15 VB102(数据这边有问题)VB103结束字符  16#FF
,问题 为什么单单VB102中的数据有问题,测试的结果与输出的Q0.x对应不上,很混乱
比如我数据发1500FF就出现VB102中的输出全为1,输入其他数据也是。这是为什么,我想要达到的效果是 00 全部不得电,01 Q0.1得电 ,输入02 Q0.2得电 等等 。求帮忙,是不是我哪边考虑错误了 ,新手 还多多帮助,谢谢。

最佳答案

如果你想通过电脑中的串口调试助手来控制PLC200的I/O口,不需要写通信程序,只需在串口调试助手中设置参数,如波特率、奇偶校验位、停止位、数据位等等就可以与PLC通信,通信电缆必须用RS232转RS485.
如果你有外设想同PLC200通信,这就要写通信程序,一般地来说,1.外设与PLC通信时外设都有发送字符的条件,你的程序看不到; 你的接受字符码是NAK,16#FF转换为字符码是什么呢?怎查不到?
2.字符接受完成后还需要发送字符,这样才能循环地发送接受字符,你程序中少了这部分。

提问者对于答案的评价:
1

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月3日 上午1:00
下一篇 2017年8月3日 上午1:01

相关推荐

  • 西门子200 modbus与LED看板无法通讯

    做了一块LED看板回来,作用是PLC的实时数据发送到LED板上显示;用的是MODBUS通讯协议;PLC的程序监控没有,modbus_msg块也没有报错;问题是怎么都通讯不上;不知道…

    2021年7月5日
  • 西门子200plc数据永久保存

    西门子s7-200plc怎么做到断电后多个数据永久保存? 问题补充:设置0MB_MB13为断电保持我是会的,但是我要保持的数据要20个,我想问的是SMB31和SMW32这两个寄存器…

    SIMATIC S7-200 2017年6月10日
  • 200cn连接两台 1000IE 触摸屏

    200cn只有一个485接口,已经成功连接一台触摸屏,现在要远处再加一台触摸屏进行控制。1、可不可以通过带扩展口的DP接头直接连接2台触摸屏同时与PLC进行ppi通讯,需要做什么设…

    SIMATIC S7-200 2021年7月5日
  • 自有口通讯

    在执行USS及modbus指令时,是否也要对SMB30或SMB130进行设置  最佳答案 不需要,库里已经做好了。 按帮助设置波特率,检验位等就可以了。&nbs…

    SIMATIC S7-200 2021年7月5日
  • STEP 7-MicroWIN SMARTv2.3无法打开

    卸载安装了好多次,还是出现这种情况,一打开就报错 钻石用户推荐最佳答案 报的什么错,先上个图看看电脑上有没有安装PC ACCESS SMART如果有,那卸载之后…

    SIMATIC S7-200 2021年7月5日
  • 定时器如何设置更长时间

    各位好   我现在需要几个定时器时间分别是5 s(M2.3),7085 s(M1.0),7090 s(M1.1),720…

    SIMATIC S7-200 2020年11月5日
  • 西门子和三菱的字节

    三菱K2X001转化为西门子的应该怎么表达等同, 最佳答案 三菱K2X001=X0~X7,相同于西门子的IB0=I0.0~I0.7,都是8位字节。三菱K4X001=X0~X17,相…

    SIMATIC S7-200 2017年11月13日
  • s7 200 与 kp1200 通讯

    怎样实现s7 200 与 kp1200 的通讯?有几种方法呢?有手册和文档就最好了 最佳答案 实际上打开tia软件编辑ktp1200的连接,…

    SIMATIC S7-200 2021年7月5日
  • 西门子224cpu通讯问题

    224 CN只能用PPI那个线通讯嘛》? 问题补充:目前还不知道有没有扩展em277,下午才去现场,有个数据不合适要过去看,只知道plc是200的。我得准备跟200通讯的…

    SIMATIC S7-200 2021年7月5日
  • 西门子200单个脉冲

    由于设备需要,需要一个脉冲,该脉冲的占空比是微妙级别的,所以不太好用定时器。目前 我是这样操作的,用西门子200 Q0.0的高速脉冲,当I0.0上升沿输出脉冲数…

    2021年7月5日