本人用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