CP243-1间“交流”的小秘密.
点击数:7270 次 录入时间:03-04 11:51:14 整理:http://www.55dianzi.com PLC入门
现分享一个关于两个 CP243-1 之间数据“交流”的例子:CP243-1作为客户端,建立一个连接并配置两个或以上的数据传输会有什么区别? 测试1:CP243-1作为客户端,通过以太网向导建一个连接并配置两个数据传输,收、发共计调用两个ETHx_XFR子程序,运用done完成位循环触发ETHx_XFR子程序,部分程序如下:
通过状态表监控done和error当前值,两个子程序的done位始终在0/1之间切换,error为0,俩CP243-1“交流”正常。 测试2:CP243-1作为客户端,通过向导建一个连接并配置三个数据传输,收、发共计调用三个ETHx_XFR子程序,做法与测试一相同,运用done完成位循环触发ETHx_XFR子程序,执行流程图如下:
图中DATA1 / 2 / 3为数据传输任务,在同一个连接中必须按顺序依次循环发送。
(注:DATA3的数据传输任务ETHx_XFR子程序对于的done为M0.6,error为MB12) 通过状态表监控各数据传输的done和error当前值,其中两个ETHx_XFR子程序的done位都为1,其对应error为130错误(通道繁忙或无“起始”脉冲),俩CP243-1“交流”失败,这究竟是什么原因造成的呢? 如果更改测试二的程序,对于第1个ETHx_XFR子程序用手动触发,先将EN置1,其done立即为1,然后给start一个上升沿,发现done变为0,执行完毕后置1;紧接着对第2个ETHx_XFR子程序用手动触发,先给EN置1,其done立即为1,同时发现其error为130。 由此可见,测试一中2个ETHx_XFR子程序中的EN和start引脚是互相运用了done位的0/1切换而未发生通讯报错;而测试二中任何时刻都有2个EN引脚为1,这就是130错误的缘故。 测试二的解决办法:当前的ETHx_XFR子程序执行完毕,用其done复位其EN和start引脚触发点(即上一个ETHx_XFR子程序的done);例如在第二个子程序后添加网络,如下图所示,用第二个子程序的done复位第一个子程序的EN和start引脚触发点。
所谓:欲速则不达,CP243-1之间的“交流”只有顺序执行,数据才能有条不紊。同一个连接中的多个数据传输任务必须做顺序触发控制。 故事外传: CP243-1提供8个连接资源,在客户机和服务器的通讯资源充裕时,可建立多连接,每个连接中仅建立一个数据传输任务。此时可以同时调用ETHx_XFR子程序,该方法虽然提高通讯数据的更新速率,但占用了多个连接资源。
本文关键字:秘密 PLC入门,plc技术 - PLC入门