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

主程序
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日

相关推荐

  • CPU226+TD400C如何控制三菱A740变频器频率输出

    1、在TD400C上设定转速,用CPU226通过通讯控制三菱A740变频器输出请问该如何做?2、TD400C上可以做配方吗?3、怎样用PLC的多个输出口的通断表示二进制数?我刚刚开…

    SIMATIC S7-200 2020年11月1日
  • 面板上的上下键

    在TD400面板上的上下键,按下时对应的位会置位,不知道怎么才能让所对应的位复位呢?我想用上下键来切换画面! 最佳答案 1.在TD400面板上的上下键,按下时对应的位会置位,不知道…

    SIMATIC S7-200 2021年7月4日
  • S7200与泓格M7017通讯!

    请问各位高手,我使用S7200 224XP 与M7017通讯读取模拟量数值,现在已经将modbus库安装到PLC还有将port口和M7017modbus口连接完…

    SIMATIC S7-200 2017年6月1日
  • s7-200内置脉冲输出控制方式

    s7-200内置PTO脉冲输出控制步进电机或伺服电机,有几种方式可以实现?以Q0.0为例第一种方式:通过控制特殊寄存器SMB66,SMB67,SMW68,SMD72,SMB166,…

    SIMATIC S7-200 2017年12月9日
  • 字符串含3位小数转实数

    我看了一段程序,其中为将含有3位小数的字符串,转化为实数时候,为什么还的除以1000?能详细解释一下吗!STR    VB310,&nbsp…

    SIMATIC S7-200 2020年11月1日
  • s7-200的485通信怪事

    我用S7-226的P0口与一台电磁流量计通信,9600,8,1,无校验,通信不上。用PC配482/232转换器与PLC通信,可收到其发出的4字节指令,按规定格式手动发送数据正常读出…

    SIMATIC S7-200 2020年11月1日
  • S7-200与WINCC之间的PPI通讯

    请问哪位老兄做过S7-200与WINCC之间PPI通讯的项目,能否给出做这个项目的详细步骤?没做过的人建议不要发贴! 最佳答案 请参考: WinCC 访问&nb…

    SIMATIC S7-200 2017年6月24日
  • s7200 用MPI

    S7200 之间用MPI 通讯 最多可以带多少S7200cpu, 需要加那些通讯设备!不和300通讯 最佳答案 注意:S7-200CPU只能…

    SIMATIC S7-200 2020年11月1日
  • 通讯电缆价格

    RS-232/PPI电缆(订货号6ES7 901-3CB30-0XA0)现在大概的价格在多少左右啊?(正版的) 最佳答案 国产的240左右,进口的650左右. 提问者对于…

    SIMATIC S7-200 2021年7月5日
  • S7-200的安装

    手里有一台全新PC电脑,安装了Win7_英文旗舰版,按先后顺序安装了:STEP7v5.5s p4(中文),STARTERv4.5,WinccFelxible 2…

    SIMATIC S7-200 2021年7月5日