恭喜,你发布的帖子
发布于 2016-07-20 09:37:14
6楼
主程序是这样写的:首先初始化PORT1口,9600、N、8、1,SMB187设成B0(以结束字符结束接收)、SMB189设成16#0A,或者SMB187设成94(以时间结束)、SM192设成20ms,以空闲线开始,空闲时间SMW190设为5ms,最大接收字符SMB194设14。开启发送完成中断和接收完成中断。如图:
设置发送2个字节:1B 70,并发送。因为接收的数据量很小,所以采用SM0.5每秒发送一次,发送时首先将SM187.7复位,并执行RCV,以保证不会出现同时XMT/RCV的故障。(这个是在网上学的,刚开始的时候一直出现同时XMT/RCV的故障,无法解决。向这位前辈致敬!)如图:
在发送中断中做以下程序:置位SM187.7,并执行RCV,开始接收数据。为了断判断RCV有没有工作,在这里置位M1.0,并在接收完成中断里复位M1.0。
把程序下到PLC,打开程序监控、状态表监控,发现无“同时XMT/RCV”的故障,发送完毕中断一闪一闪地运行,状态表中SM187.7一直显示E0或者94,SM186.7一直显示00,SMB2一直显示0,我的接收区域VB210、VB211等一直显示0,M1.0一直显示1。后来把置位M1.0这句删掉,只保留接收完成中断里复位M1.0,M1.0还是一直显示1。这证明RCV根本就没有运行。
现在的问题是,我错在哪里了?
请填写推广理由:
分享
只看
楼主