发布于 2014-08-20 21:26:38
38楼
对于异步通讯来说,PLC的CPU和CM模块之间交换信息并不一定是每个扫描周期都需要交换信息。完全可以按一定时间间隔对CM查询、交换信息。查询间隔周期取决于波特率和报文长度。
作为主站,因为通讯负荷较大,对从站通讯多。所以要求尽量放在循环OB中。但你完全可以根据每扫描周期查询(调用啦)得到Busy计数次数也能估出周期。
对于主站CM来说,每次CPU出现REQ上升沿,通讯任务就被CM模块接收、开始执行。下一扫描周期,CPU得到的就是Busy。Busy、Busy、Busy、如果通讯正常,几十毫秒之后完成。当CPU再次查询时,得到Done标志。(Done信号在CM中一直保持到CPU查询、“取走”应答报文为止。在Done标志消失前,也不能REQ提交新任务。)
学而时习之,不亦说乎?温故而知新,不亦乐乎?