首页 理论教育 PLC方程序设计优化策略

PLC方程序设计优化策略

时间:2023-06-16 理论教育 版权反馈
【摘要】:如为被动通信或协议通信,PLC方基本上可不用编写程序。如为主动通信或无协议通信,PLC方必须编写相应程序。这可用PLC起动方式设定,或用计算机写PLC处于监控状态实现。PLC根据控制状态或采集到的数据情况,主动给上位机发送数据,等待计算机回应。PLC再对回应进行判断,以进行下一步处理。

PLC方程序设计优化策略

如为被动通信或协议通信,PLC方基本上可不用编写程序。但为了提高程序效率与性能,多数还是要编写一些准备数据及使用数据程序。

如为主动通信或无协议通信,PLC方必须编写相应程序。

1.数据准备程序

最好把上位机要读的数据作些归拢,集中在若干连续的字中。这样,当上位机读时,一个命令即可读走。不然,如果数据分布较分散,则要用多个命令、分多次读。这既增加通信时间,又增加上位机编程的工作量。

如有的PLC与上位机通信,只能用指定的数据区。这时,则必须建立一个通信用的数据块,把要与上位机交换的数据,与这个数据块中的数据相互映射,以做到上位机读写这数据块时,就相当于读写与其有关数据。

2.数据使用程序设计

一般讲,为使上位机写给PLC的数据发挥作用,PLC还要有相应的程序。有两方面程序:数据执行程序,及数据复原程序。

提示:欧姆龙PLC,为了让计算机能向PLC写数据,首先应使PLC处在监控工作方式。这可用PLC起动方式设定,或用计算机写PLC处于监控状态实现。

数据执行程序:实际上是有关控制程序的一部分。如图5-132所示“工作”,下位机是由“起动”及“停止”控制。而上位机需要对“工作”进行控制,可直接对其置位、复位。只是有时通信命令不便对位进行操作,而只能对字进行操作。这怎么办?

如图5-132a用LR0.0、LR0.1操作。上位机用写命令,使LR0的值为1,即LR0.0为1,其余位均0。使LR0的值为2,即LR0.1为1,其余位均0。而在程序的最后又使LR0置零。这里LR0.0、LR0.1仅ON一个扫描周期,但其作用却等同于这里的“启动”“停止”。LR0的其它位也可用作类似控制。

如图5-132b用M0.0、M0.1操作。上位机用写命令,使MB0的值为1,即M0.0为1,其余位均0。上位机用写命令,使MB0的值为2,即M0.1为1,其余位均0。而在程序的最后又使MB0置零。这里M0.0、M0.1仅ON一个扫描周期,但其作用却等同于这里的“启动”“停止”。MB0的其它位也可用作类似控制。

如图5-132c用M0、M1操作。上位机用写命令,使K4M0(M0~M15)的值为1,即M0为1,其余位均0。使K4M0(M0~M15)的值为2,即M1为1,其余位均0。而在程序的最后又使K4M0置零。这里M0、M1仅ON一个扫描周期,但其作用却等同于这里的“启动”“停止”。M0~M15的其它位也可用作类似控制。

978-7-111-56641-0-Chapter06-219.jpg

图5-132 数据使用程序

这里在程序的最后又使LR0、MB0、K4M0置零,又称在数据复原程序。一般讲,上位机所写的数据经使用后,最好用PLC程序使其复原(处于0状态),使其不再起作用。

提示:如上位机可对位的状态进行操作,如本例,可直接写“工作”。这样,下位机的程序什么都不用改。也可写“启动”或“停止”,如“启动”或“停止”为PLC的输入点,计算机写它的值,只能保持一个扫描周期。之后,将取决于当时的输入状态。这时,下位机的程序也是什么不用改。但有的PLC,如西门子,上位机不能写输入点,或有的协议不能对位进行操作,那只好按图5-132的办法处理。(www.xing528.com)

3.PLC主动通信程序

主动通信是PLC发起的。PLC根据控制状态或采集到的数据情况,主动给上位机发送数据,等待计算机回应。当PLC接收到这数据,再按约定向PLC发写数据回应命令。PLC再对回应进行判断,以进行下一步处理。

PLC如果用串口与计算机主动通信,则要用串口通信指令。如果用其它网络接口与计算机主动通信,则要用网络通信指令或函数。图5-133所示为欧姆龙PLC用串口指令,主动与计算机通信的一个例子程序。

从图5-133可知,当9.01ON(要进行某个控制)时,PLC向串口发送一组数据。注意,这里的TXD指令为微分执行,即仅发一次数据。控制字0,说明用RS-232口发数据。第3个操作数为#4,说明发DM10、11中4个字节数据。从程序知,这4个字节的内容为“1112AAAA”。因用的是HOSTLINK方式通信,所以,会自动加入报头及结尾。

与其连网的计算机,不断地读串口。一旦收到此数据,经判断、确认,如按约定发向PLC的DM1写“ABCD”的通信命令。如PLC接受了这个写操作(注意,无须编程,系统为之实现),从图的梯级2知,其比较结果使P_EQ(相等标志)ON,则使8.01置位,并自保持,程序进入下一步操作。且使9.01、DM1复位。为以后通信应答做准备。

如果程序再细一些,还可考虑加定时控制,一旦长时间得不到计算机的回应,或再发通信数据或报警。还可再作别的比较,如DM1为其它某个数,则相应其它分支操作等。

图5-134所示为S7-200用RS-485口,进行自由口无协议通信的实例程序。它为主动通信,定时向计算机发送数据。计算机接收数据就可以了。

978-7-111-56641-0-Chapter06-220.jpg

图5-133 主动通信程序

其程序很简单,仅是通信口设定及发送数据。这里

978-7-111-56641-0-Chapter06-221.jpg

978-7-111-56641-0-Chapter06-222.jpg

978-7-111-56641-0-Chapter06-223.jpg

图5-134 S7-200主动通信程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈