自由口通讯中断

本人用XMT指令发送5个字节的数据,在这边设备中都看数据已经传送过来了,但是发送完毕中断却没有产生??
 中断连接:
 LD     SM0.1
 ATCH   INT_0:INT0, 23
 ATCH   INT_2:INT2, 9        //发送完毕中断
 ENI       
 请问是什么原因??

最佳答案

XMT在定时中断中执行。仔细研究一下系统手册,上面有例子。
 可以使用发送完成中断和接收完成中断功能,在中断程序中启动另一个指令。

  在《S7-200系统手册》中关于XMT和RCV指令的使用有一个例子。这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。
 自由口编程的一般原则: 
 1. SM0.1 触发端口初始化,连接发送完成和接收完成中断(中断事件9 和23) 
 2. SM0.0 触发RCV 指令 
 3. XMT 指令用上升沿触发,并在指令运行前先停止端口0 的接收(复位SM87.7, 
 执行RCV 指令) 
 4. 在发送完成中断中,重新置端口0 为接收状态(置位SM87.7,执行RCV 指令), 
 清空RCV 指令的接收缓冲区 
 5. 尽量减少在中断程序中编程,如果时间允许仅在中断程序中置标志位,然后在主 
 程序中扫描该位执行具体的程序 
 6. 根据将要接收信息的不同,合理设置SMB87~SMB94 

 S7-200PLC与PC自由口通讯的多种实现方法:
 http://www.fieldbuses.com/n328c39.aspx
 S7-200 自由口通讯实例:
 http://ftp.gongkong.com/UploadFile/datum/2008-12/2008121509585600001.doc
 S7-200可编程控制器系统手册,下载:
 http://www.ad.siemens.com.cn/download/Html/download.aspx?DownloadID=1848&TreeID=2&URL=%2fdownload%2fUpload%2fAS%2fmanual%2f1109582.pdf

 

提问者对于答案的评价:
非常感谢两位的解答,问题已经解决了,因为我用的是Port1,中断应该是24,26

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午12:25
下一篇 2021年7月5日 上午12:25

相关推荐

发表回复

登录后才能评论