S7-200自由口通讯怪异现象

我做的是自由口通讯,用串口调试助手调试。程序流程是这样的:发送一个读的指令,然后就开始接收指令,接收了以后再发送,一直循环下来。发送数据保存在vb500开始的内存中,接收缓冲区最大长度为5个字节,检测起始字符00。怪异的现象为:一旦接收的数据不是5个字节(比如4个),那么发送的命令就错了,变成乱七八糟的数据,真的好奇怪,忘高手指点。
 下面是程序代码
 Network 1 // 
 LD     SM0.1
 LPS
 MOVB   16#09, SMB30
 MOVB   16#C0, SMB87
 MOVB   5, VB500
 AENO
 MOVD   16#11223344, VD501
 AENO
 MOVB   16#1, VB505
 LRD
 MOVB   5, SMB94
 LPP
 MOVB   16#0, SMB88
 Network 2 
 LD     SM0.1
 S      S0.1, 1
 Network 3 
 LSCR   S0.1
 Network 4 
 LD     SM0.0
 XMT    VB500, 0
 AENO
 SCRT   S0.2
 Network 5 
 SCRE
 Network 6 
 LSCR   S0.2
 Network 7 
 LD     SM0.0
 RCV    VB32, 0
 AENO
 SCRT   S0.1
 Network 8 
 SCRE

问题补充:
解决的方法是做个超时检测,超时了就进行下一条指令。但是,这个现象还是很怪。因为,接受的数据怎么会影响到发送的数据呢?
 中断做起来好像也不简单因为我做的系统是由16个传感器,每个传感器的读取地址都不一样,用轮询的方法以此读取各个传感器的读数,我只能想到用这个方法了,中断不大会用

最佳答案

数据帧的结束是采用的什么方式,有可能是接受发送同时执行了,将接受完了以后做个延时再发送试试,如果正常就可能是上面的原因

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

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

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

相关推荐

  • 关于实时时钟

    请教高手:S7-200实时时钟设置时,如要输入2010年5月31日—-,如何设置?数据如何输入?  谢谢! 问题补充:可不可以用数据块写入时间值,什么格式?…

    SIMATIC S7-200 2020年11月1日
  • S7-200 modbus 与 PPI 通讯

    请问各位, S7-200 224XP CN   有两个端口,可以分别进行  modbus …

    SIMATIC S7-200 2017年11月12日
  • 如何转换S7-200 模拟量

    如何转换S7-200 模拟量,请高手指点一下,有没有例子程序 最佳答案 参考一下几个问题的回答吧http://www.ad.siemens.com.cn/service/…

    SIMATIC S7-200 2020年11月1日
  • 求教有关TC35的小问题

    请教诸位大师,如果采用文本模式发信息,在PLC暂存区输入AT命令中的双引号号时应该输入什么来代替?? 另外,PLC程序指令中有没有可能将实时数据转换为UNICODE码??…

    SIMATIC S7-200 2020年10月31日
  • S7-200存储器地址

    请问:1,S7-200的存储器地址哪些位是掉电后保持掉电前状态的?         &nb…

    SIMATIC S7-200 2021年7月5日
  • 自由通讯中关于SMB2问题

    自由通讯中接收数据 监控表里监控SMB2怎么一直是零?一直在接收数据啊 最佳答案 应该编程,使用间接寻址,每次接受字符中断发生(中断号8),在中断程序中,将数据送到指针所…

    SIMATIC S7-200 2021年7月5日
  • 基于s7-200 换热站自动控制实例

    1.采集室外温度;2.采集一次网供回水压力;3.采集一次网供回水温度;4.采集二次网供回水压力;5.采集二次网供回水温度;6.采集水箱液位;7.采集变频器频率;8.温度PID控制(…

    SIMATIC S7-200 2017年12月10日
  • 博图V15的plc1200连接opc在OPC SCOUT V10Z找不到plc变量

    在使用博图V15中,使用PLC1215与opc server建立通讯后,在OPC scout V10中找不到plc的变量,使用的是simatic&nb…

    2021年7月5日
  • 伺服的速度怎么才能实时显示到触摸屏上?

    自己用向导做了个伺服控制的程序,可以加减速控制,向导里已经定好了加速、减速和目标的速度,启动运动包络后,怎样做个程序才能监控当前伺服电机的速度呢?想在触摸屏上显示出来。大家看下面的…

    SIMATIC S7-200 2020年10月31日
  • S7-200PID怎么调整

    S7-200PID怎么调整? 最佳答案 http://wenku.baidu.com/view/cc82f9335a8102d276a22fe1.html 提问者对于答案的评价:好

    SIMATIC S7-200 2020年11月5日

发表回复

登录后才能评论