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

主程序
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日
下一篇 2020年10月31日

相关推荐

  • s7200smart模拟量输出问题

    s7200smart用AQ01的信号板做PID输出控制变频器,还有个AE04做温度压力的显示,把AQ01输出的2根线拆除就影响了AE04的显示,不拆时一切正常,是什么原因 问题补充…

    SIMATIC S7-200 2021年7月5日
  • S7-200做PROFIBUS DP从站

    S7-200带一个EM277做DP从站,从网上看了一个视屏中说,200与300PLC进行DP通信时,选用8进8出的。然后PIB0对应VB8,PQB0对应VB0,请问这是怎么对应的,…

    SIMATIC S7-200 2020年11月1日
  • 学S7-200的方法,刚入门

    我是一个刚刚开始学习S7-200的爱好者,已经把S7-200操作手册的基本指令以前的内容都看完了,也基本理解了,请问接下来我该怎样做才能加深或更进一步学习呢?谢谢 最佳答案 连接实…

    SIMATIC S7-200 2021年7月5日
  • micro/win与cpu通讯问题

    请问micro/win是否可以用pc adpter v5.1(非usb接口)通过em277与200cpu通讯? 问题补充:我在pg设置里面选择pc a…

    SIMATIC S7-200 2020年11月5日
  • 按钮调节频率

    S7-200  用2个按钮调节频率,一个加速,一个减速。按下加速按钮时以0.1Hz加速加至50Hz时按钮停止,即使再按也不增加。按下减速按钮以0.1Hz减速,减…

    SIMATIC S7-200 2017年6月27日
  • 触摸屏TP-178micro用什么编程软件

    触摸屏TP-178micro可以用Wincc flexible编程,我想用protool/pro cs编程,不知道可不可以,如果用protool/pro&nbs…

    SIMATIC S7-200 2021年7月5日
  • 99h

    bcd码中的99h ,,h是什么意思 最佳答案 h代表十六进制的意思。99h,就是说是十六进制的99。换算成十进制,就是153。 提问者对于答案的评价:哦 专家置评 已阅…

    SIMATIC S7-200 2017年11月16日
  • 请教一个dp通讯问题

    西门子200用dp通讯通讯到dcs,我们是将九台机器的数据传输过去,但是现在1~9号里,只有五号的数据传输不过去,其他都正常。而且我们将5号的模块与9号换过,换过以后9号仍然能通讯…

    2021年7月5日
  • S7-200 smart与S7-200有什么去区别和联系?

    应用场景有什么区别吗?程序是通用的吗?编程软件一样不一样? 最佳答案 西门子PLC介绍小型系列S7-200(系列已经大规模停产,已经逐步被淘汰)编程软件STEP 7-Mi…

    SIMATIC S7-200 2021年7月5日
  • s7-200V区地址如何对应触摸屏?

    我用的是威伦的触摸屏.请问我在s7-200里面用了V区的位地址,如何将V200.0对应到威伦的触摸屏的状态转换开关上去啊? 最佳答案 因为威伦的触摸屏的V区地址可以用到位地址,它的…

    SIMATIC S7-200 2021年7月5日