自由口通信!

主程序:
 Network 1 
 // 传送指令数据结构
 LD     SM0.1
 MOVB   16#55, VB100
 MOVB   16#03, VB101
 MOVB   16#10, VB102
 MOVB   16#68, VB103
 Network 2 //  初始化自由端口:1
 // 
 //  // - 选择9600波特、 选择8个数据位、 选择无校验
 // //接收功能禁止、使用smb88检测数据开始、使用smb89检测数据结束。
 // //设定开始字符AAH
 // //设定结束字符22H
 // //设定最大字节长度25
 LD     SM0.1
 MOVB   16#09, SMB130
 MOVB   16#60, SMB187
 MOVB   16#AA, SMB188
 MOVB   16#22, SMB189
 MOVB   25, SMB194
 Network 3 // 一分钟通讯一次
 // //开始发送vb100后面4位数据
 // //并启用发送完成中断 int_0
 LD     SM0.4
 A      M0.0
 EU
 XMT    VB100, 1
 ATCH   INT0, 26
 ENI
 子程序:
 Network 1 
 // //使能接收位
 // //开始接收数据,存于vb200后22个位
 LD     SM0.0
 S      SM187.7, 1
 RCV    VB200, 1
 Network 2 
 // 收到结束字符,停止接收。
 LD     SM186.5
 EU
 R      SM187.7, 1
 没有接收到任何数据,帮忙看看,那出问题了?
 

最佳答案

1 XMT    VB100, 1   //VB100=16#55,每次发送85个字节数据

 2 ATCH   INT0, 26   //但是你没有列出中断程序

 3 更改如下,你再试试

 INT0:
 LD     SM0.0
 S      SM187.7, 1
 RCV    VB200, 1

 4 以下这段可以不要,因为如果收到结束字符,RCV就结束了,不会和XMT发生冲突,实际上这段并不能停止RCV
 复位SMB187.1后,还需要执行RCV,才能停止RCV.
 LD     SM186.5
 EU
 R      SM187.7, 1

 5 另外这个程序没有考虑从站失电和通讯故障的情况,如果和从站通讯不上,或者通讯有问题,收不到结束字符,
 那么RCV始终不会结束。

 6 参考这个程序:http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=3&a_id=636193&s_id=0&num=21#anch

 

 

提问者对于答案的评价:
3q

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

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

相关推荐

  • MD204与S7200的MODBUS通讯问题

    我现在想用一个深圳MD204文本显示器做主站,S7216CPU做从站,采用modbus通讯,请用主站与从站程序如何编写,主站程序应该从哪里编写,是MD204文本里编还是CPU216…

    SIMATIC S7-200 2020年11月5日
  • 编码器收到干扰问题

    欧姆龙编码器和CPU226,采用HCO 模式10 ,一个接近开关做为外部复位端子。现场有3个安川变频器.还有其它接近开关做为别的用途。当改外部复位端子还没有信号…

    SIMATIC S7-200 2021年7月5日
  • S7-200或者S7-200smart 与多圈绝对值编码器的连接及信号接收程序

    PLC与多圈绝对值编码器都有什么形式的通讯?      采用SSI时怎么编写PLC的程序?如何接线? 或者采取…

    SIMATIC S7-200 2021年7月5日
  • cpu 224 xp cn 无法下载程序

    cpu 224 xp cn 无法下载程序,并且报NON FATAL ERROR ,故障号 82.&n…

    SIMATIC S7-200 2021年7月5日
  • 怎么知道高速计数器目前是对哪个DI点在进行计数呢?

    怎么知道S7-200的程序特定的高速计数器目前是对哪个DI点在进行计数呢?比如:HSC0,可以对I0.0,I0.1和I0.4进行计数,但是,我在别人的程序里头并没有看到HSC0怎么…

    2021年7月5日
  • 电子膨胀阀

    丹佛斯电子膨胀阀使用PLC怎么控制 问题补充:我听说是通过给步进电机脉冲来控制,然后根据过热度来调节。请问那位大哥做过这个控制?能否告诉我一下! 最佳答案 ETS电子膨胀阀配有驱动…

    SIMATIC S7-200 2021年7月5日
  • 中继问题

    目前项目中采用2台cpu226,距离1200米,走PPI协议,加两台中继能保证通讯正常吗(手册上说1000米)?如果可以,中继位置怎么放,是和PLC放在一起吗?谢赐教! 最佳答案 …

    SIMATIC S7-200 2020年10月31日
  • s200编程电缆问题

    我有一条原装的s200编程电缆,订货号为6es7 901-3cb30-0xa0,在编程软件里无法将波特率设置为187.2k,只有将其设为19.2k,才能够与PLC进行通信…

    SIMATIC S7-200 2020年11月5日
  • S7-200和PIC通讯问题

    目前接到一项目,用S7-200主站,PIC做从站,PIC以前没有接触过,不知道应如何进行通讯,是用自由口,还是用modbus通讯,PIC是16F877A-I/P,目前手中没有资料,…

    SIMATIC S7-200 2021年7月5日
  • 200之间通讯电缆的接口

    请教各位:200与200之间通讯 我现在自制了一根通讯电缆,(用普通的DB9接头3-3,8-8这样接)但是这样没法通讯,有人告诉我说PLC之间的通讯电缆需要带编程接口的。…

    SIMATIC S7-200 2021年7月4日

发表回复

登录后才能评论