各位大侠帮忙看看这段程序哪里有问题

主程序
LD     SM0.1                       
MOVB   16#09, SMB30                                               MOVB  16#B0,SMB87                                                              
MOVB   16#0A, SMB89                
MOVW   +5, SMW90                  
MOVB   100, SMB94                  
ATCH   INT_0:INT0, 23              
ATCH   INT_2:INT2, 9               
ENI                                
RCV    VB100, 0
中断0
LDB=   SMB86, 16#20                
MOVB   10, SMB34                   
ATCH   INT_1:INT1, 10              
CRETI                             
NOT
RCV    VB100, 0 
中断1
LD     SM0.0
DTCH   10                          
MOVB   2, VB200
MOVB   16#05, VB201
MOVB   16#52, VB202
XMT    VB200, 0
中断2
LD     SM0.0
RCV    VB100, 0

问题补充:
这个是我参照别人的程序编的s7-200与仪表的自由口通讯,用串口调试工具可以发送接收数据,所以硬件连接方面应该没问题,写的这个程序传进去就是接收不到东西,弄了N天就是搞不好,不知道程序出错在哪里,请各位朋友帮帮忙

最佳答案

主程序
1、初始化通讯参数
2、关联通讯中断程序,接收完成后执行中断0,发送完毕后执行中断2
3、使能中断
4、第一个扫描周期内,执行一次接收。
中断0:接收检测
接收完成?
是,调用中断1
否,继续接收,直到完成接收。
中断1:通讯回执
调用后只执行一次
一条通讯完成,回传HEX 05 52 
中断2:接收程序
接收
这是一个在不同中断间不停切换的程序

首先,在第一周期开始接收,接收完成,调用中断0,中断0结束后调用中断1,中断1发送结束后调用中断2(接收),之后又是中断0,如此循环。
整个程序逻辑上没什么问题,关键在于启动事件——23,假设在第一个周期并没有接收到数据,或者PLC启动时,仪表没有上电,都可能造成程序不运行。
你可以试试在主程序里添加一个网路,写入下面语句
LDB<> SMB86,0
RCV VB100,0
试试看

提问者对于答案的评价:
谢谢帮忙,前段时间忙,今天刚上网

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:31
下一篇 2020年10月31日 下午3:31

相关推荐

  • 200 库文件

    谁有200的库文件 发给我一份 常用的 shaoyy-11@163.com 最佳答案 200库文件下载地址链接:http://www.gongkong…

    SIMATIC S7-200 2017年11月29日
  • 200plc单键启停

    很简单的程序,但是我想把这个做成子程序,不要使用上升下降计数计时指令实现。求前辈指点。 最佳答案 单按钮启停的程序编辑有很多种,有些程序在理论上是可行的,但是有一点一定要注意,在实…

    SIMATIC S7-200 2017年11月2日
  • 200系列PLC宽脉冲

    请问CPU224PLC有没有脉冲宽度输出,继电器输出的怎么做,我有一PLC,是继电器输出,可是项目是要输出宽脉冲可以调节的,请问把继电器拆掉可以实现吗,如果不能该选什么型号的? 最…

    SIMATIC S7-200 2020年11月1日
  • s7-200 cpu电源计算

    在电源计算的时候,还要不要加上CPU本身输出点的电流。为什么手册上的没有算。晶体管和继电器一样吗。都按9mA算? 最佳答案 CPU本身输出点的电流不在有扩展模块范围,故不计算在内。…

    SIMATIC S7-200 2021年7月5日
  • 一个简单的inc指令

    我想编一个根据开关闭合个数来判断开第几号灯的小程序,我用了 LD     I0.7 EU INCW&…

    SIMATIC S7-200 2021年7月4日
  • 程序状态监控时弹出窗口

    窗口内容如下:由PLC正在上载/下载,处于致命错误状态或硬件而无法处理此命令。不知道为什么?请高手赐教!谢谢! 问题补充:我用的是CPU224XP DC/DC/DC 最佳…

    SIMATIC S7-200 2021年7月5日
  • PLC控制比例流量控制阀的精度问题

    我这有两个油缸的同步问题,打算用S7-200 控制力士乐的比例流量阀2FRE6型,比例阀最大流量1L/min,最小0.025L/min, 油缸实际需要流量是0.…

    SIMATIC S7-200 2018年3月6日
  • 200 plc如何产生随机数

    如题,请问200 plc如何产生一个在一定范围内随机变化的随机数,谢谢! 最佳答案 将时间取正弦,再取其小数部分,这样随机性好像更好一些。其实所有的应该都是伪随机数 提问…

    SIMATIC S7-200 2021年7月5日
  • 6ES7214-2BD23-0XB0 模拟量输入接线

    6ES7214-2BD23-0XB0 模拟量输入接线M与A+,B+如何接线,为何不共用正极或负极 最佳答案 常问问题: CPU 224 XP…

    SIMATIC S7-200 2021年7月5日
  • 不知怎么理解

    LD     SM0.0MOVD   +0, AC0MOVB  &nb…

    SIMATIC S7-200 2020年11月5日