如为被动通信或协议通信,PLC方基本上可不用编写程序。但为了提高程序效率与性能,多数还是要编写一些准备数据及使用数据程序。
如为主动通信或无协议通信,PLC方必须编写相应程序。
1.数据准备程序
最好把上位机要读的数据做些归拢,集中在若干连续的字中。这样,当上位机读时,一个命令即可读走。不然,如果数据分布较分散,则要用多个命令、分多次读。这既增加通信时间,又增加上位机编程的工作量。
如有的PLC与上位机通信,只能用指定的数据区。这时,则必须建立一个通信用的数据块,把要与上位机交换的数据,与这个数据块中的数据相互映射,以做到上位机读写这数据块时,就相当于读写与其有关数据。
2.数据使用程序设计
一般讲,为使上位机写给PLC的数据发挥作用,PLC还要有相应的程序。有两方面程序:数据执行程序及数据复原程序。
提示:对欧姆龙PLC,为了让计算机能向PLC写数据,首先应使PLC处于监控工作方式。这可用PLC起动方式设定,或用计算机写PLC处于监控状态实现。
数据执行程序:实际上是有关控制程序的一部分。如图6-136所示“工作”,下位机是由“启动”及“停止”控制。而上位机须要对“工作”进行控制,可直接对其置位、复位。只是有时通信命令不便对位进行操作,而只能对字进行操作。这怎么办?
如图6-136a用LR0.00、LR0.01操作。上位机用写命令,使LR0的值为1,即LR0.0为1,其余位均0。使LR0的值为2,即LR0.1为1,其余位均0。而在程序的最后又使LR0置零。这里LR0.0、LR0.1仅ON一个扫描周期,但其作用却等同于这里的“启动”、“停止”。LR0的其他位也可用做类似控制。
如图6-136b用M0.0、M0.1操作。上位机用写命令,使MB0的值为1,即M0.0为1,其余位均0。上位机用写命令,使MB0的值为2,即M0.1为1,其余位均0。而在程序的最后又使MB0置零。这里M0.0、M0.1仅ON一个扫描周期,但其作用却等同于这里的“启动”、“停止”。MB0的其他位也可用作类似控制。
如图6-136c用M0、M1操作。上位机用写命令,使K4M0(M0~M15)的值为1,即M0为1,其余位均0。使K4M0(M0~M15)的值为2,即M1为1,其余位均0。而在程序的最后又使K4M0置零。这里M0、M1仅ON一个扫描周期,但其作用却等同于这里的“启动”、“停止”。M0~M15的其他位也可用作类似控制。
图6-136 数据使用程序
这里在程序的最后又使LR0、MB0、K4M0置零,又称数据复原程序。一般讲,上位机所写的数据,经使用后,最好用PLC程序使其复原(处于0状态),使其不再起作用。
提示:如上位机可对位的状态进行操作,如本例,可直接写“工作”。这样,下位机的程序什么不用改。也可写“启动”或“停止”,如“启动”或“停止”为PLC的输入点,计算机写它的值,只能保持一个扫描周期。之后,将取决于当时的输入状态。这时,下位机的程序也是什么不用改。但有的PLC,如西门子,上位机不能写输入点,或有的协议不能对位进行操作,那只好按图6-126的办法处理。(www.daowen.com)
3.PLC主动通信程序
主动通信是PLC发起的。PLC根据控制状态或采集到的数据情况,主动给上位机发送数据,等待计算机回应。当PLC接收到这数据,再按约定,向PLC发写数据回应命令。PLC再对回应进行判断,以进行下一步处理。
PLC如果用串口与计算机主动通信,则要用串口通信指令。如果用其他网络接口与计算机主动通信,则要用网络通信指令或函数。图6-137所示为欧姆龙PLC用串口指令,主动与计算机通信的一个例子程序。
从图6-137可知,当9.01 ON(要进行某个控制)时,PLC向串口发送一组数据。注意,这里的TXD指令为微分执行,即仅发一次数据。控制字0,说明用RS-232口发数据。第3个操作数为#4,说明发DM10、11中4个字节数据。从程序知,这4个字节的内容为“1112AAAA”。因用的是Host Link方式通信,所以会自动加入报头及结尾。
与其连网的计算机,不断地读串口。一旦收到此数据,经判断、确认,如按约定发向PLC的DM1写“AB-CD”的通信命令。如PLC接受了这个写操作(注意,不须编程,系统为之实现),从图的梯级2知,其比较结果使P_EQ(相等标志)ON,则使8.01置位,并自保持,程序进入下一步操作。且使9.01、DM1复位。为以后通信应答作准备。
图6-137 主动通信程序
如果程序再细一些,还可考虑加定时控制,一旦长时间得不到计算机的回应,或再发通信数据或报警。还可再作别的比较,如DM1为其他某个数,则相应其他分支操作……
图6-138所示为S7-200用RS-485口,进行自由口无协议通信的实例程序。它为主动通信,定时向计算机发送数据。计算机接收数据就可以了。
图6-138 S7-200主动通信程序
其程序很简单,仅是通信口设定及发送数据。如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。