PLC应用经验点滴
以下叙述的硬件/软件条件为:不带RS232串口的笔记本电脑、欧姆龙CPM2AH-60CDR型PLC、Cx-Programmer V5.0编程软件。
1. Cx-Programmer V5.0与PLC通信不稳定:
电脑与PLC的连接方式:电脑USB口(该电脑没有RS232串口)←→[USB转RS232电缆的USB插头←→USB转RS232电缆线(电脑已经安装驱动,且默认的COM4端口已经设置为COM1)中间部分←→USB转RS232电缆的RS232公头]←→[[电脑与PLC的连接电缆的RS232母头←→电脑与PLC的连接电缆线的中间部分←→电脑与PLC的连接电缆的RS232公头]]←→PLC的RS232母头。
上面单中括号内为USB转RS232电缆,双中括号内为电脑与PLC的连接电缆。电脑与PLC的连接电缆接线如下:(1).公头(用以连接PLC)的2、3、9分别与母头的2、3、5(用于连接电脑或USB转RS232连接线)短接,这是欧姆龙官方的连接方法;(2).公头和母头的2-2、3-3、5-5分别短接,这是RS232连接线的常规连接方法。后来经过实践证明:上面2种电脑和PLC的连接电缆都可以使用。第1种电缆通信稳定可靠。对于第2种电缆,当电脑和PLC之间通过VC应用程序进行通信时效果不好,容易丢帧(用串口调试助手可以看到),只有当电脑和PLC共用电源(共地)时才没有发现问题。所以,请尽量采用第1种连接电缆。
有时间电脑和PLC能正常通信,有时间却不行——显示“Modem已经被选中,要继续码?”故障(实际上“码”应当为“吗”),一旦出现该故障信息,就一定会出现以下故障信息:
当通信不上时,笔者采用过克隆回以前的正常操作系统、重新安装Cx-Programmer V5.0编程软件等方法,又可以正常通信了,但一旦断线后又可能通信不上了。有几次还发现,有些程序可以和PLC通信上,而有些程序却不行!因此,笔者就将可以通信的PLC程序先备份,然后全部删除程序中的指令,最后将目标程序的指令全部复制过来(复制时注释可以自动复制过来),这样居然电脑就可以正常和PLC进行通信了!但是——下一次这个程序可能又无法正常通信了!
根据通信错误信息“Modem已经被选中,要继续码?”,笔者找到了解决方法:在桌面上右击“我的电脑”,再点击“属性”——“硬件”——“设备管理器”,再双击“调制解调器”,再右击展开的调制解调器型号,点击“停用”就可以了。
另外,正确连接方法如下:在电脑没开机或(和)PLC没通电(否则带电拔插通信口可能造成通信口损坏(虽然这种几率不大,但你最好不要去碰运气))的情况下连接好USB转RS232电缆、电脑与PLC的连接电缆,然后再通过Cx-Programmer连接电脑与PLC。
请注意:USB口也不是随便乱插就可以的,关键要保证设备管理器里的RS232口为COM1。笔者的电脑上时这种情况:最初已将默认的RS232口从COM4口改为COM1口,但插下面的USB口却对应RS232的COM4口(COM1、COM3正在使用),无法连接电脑与PLC;插上面的USB口对应RS232的COM1口(COM2、COM4正在使用),可以连接电脑与PLC。
2. Cx-Programmer V5.0与PLC通信干扰:
如果Cx-Programmer在线,电脑和PLC已经连接,处于通信状态下,当每次设备停机时(将近20个交流接触器同时断开)Cx-Programmer将会出现通信错误,电脑和PLC连接中断。而当每次开机时(将近20个交流接触器同时吸合)却不会出现通信错误的情况。
解决方法:重新连接PLC。如果你是个完美主义者,可以在每个接触器线圈上加一个RC阻容模块(每个RC模块大概60个大洋左右),也许不会出现通信错误的情况(不过笔者没有试过哟...)。
3. 电脑与PLC的连接电缆试验:
因为想到电脑与PLC的连接电缆(第1种常规的连接电缆)为2-2短接、3-3短接、5-5短接,所以考虑直接用USB←→RS232电缆将电脑和PLC连接起来,如果这样可以的话不就省了一条连接电缆了吗?下面是直接用USB←→RS232电缆将电脑和PLC连接起来的试验结果:
有时间第1次通信时出现以下错误:“所选的端口被另一个应用所占用”;第2次通信时出现以下错误:
为什么电脑通过上述两种连接电缆与PLC连接没有问题,而直接采用USB转RS232电缆线与PLC连接却不行呢?以下是分析过程:
第1种可能:阻抗的原因。虽然上述两种连接电缆为直连线,却有阻抗存在,多了这个阻抗就可以正常连接。但这个原因好像很牵强,连笔者自己都不能相信。
第2种可能:该USB转RS232的公头与PLC的母头接触不良,而加一根电缆却能连接正常——USB转RS232的公头与连接线的母头接触良好,连接线的公头与PLC的母头接触良好。该猜测来源于笔者遇到过的一次电脑故障:某台电脑的鼠标无法使用,另外换一个鼠标正常,把故障鼠标换到其它电脑却能正常使用。最后怀疑鼠标接头与主板插口接触不良,就将鼠标插头破开再涂上一层焊锡,结果使用正常!但是对于USB转RS232的公头与PLC的母头接触不良这种猜测,笔者觉得可能性不大——因为他解释不了“所选的端口被另一个应用所占用”这个故障。
最后想到了另外一个可能:USB转RS232直接与PLC连接就相当于USB转RS232的串口与PLC的串口1-1、2-2、3-3、4-4、5-5、6-6、7-7、8-8、9-9一一对应连接,而通过连接线却只有2-2、3-3、5-5三对端子连接,这说明1-1、4-4、7-7、8-8、9-9至少有一对是不能连接的,否则就会出现问题,而且这还既有可能损坏PLC与电脑的通信端口。笔者认为就是这个原因。
PLC好学吗?有的人说好学,更多的人说难学。我的看法是入门易,深造难。入门易,总有它易的方法。很多人都买了有关PLC的书,如果从头看起的话,我想八成学不成了。因为抽象与空洞占据了整个脑子,一句话晕!
学这东东要有可编程控制器和简易编程器才好,若无,一句话,学不会。因为无法验证对与错。如何学,我的做法是直奔主题。做法如下:
1、认识梯形图和继电器控制原理图符号的区别:
继电器控制原理图中的元件符号,有常开触点、常闭触点和线圈,为了区别它们,在有关符号边上标注如KM、KA、KT等以示不同的器件,但其触头的数量是受到限制。而PLC梯形图中,也有常开、常闭触点,在其边上同样可标注X、Y、M、S、T、C以示不同的软器件。它最大的优点是:同一标记的触点在不同的梯级中,可以反复的出现。而继电器则无法达到这一目的。而线圈的使用是相同的,即不同的线圈只能出现一次。
2、编程元件的分类:编程元件分为八大类,X为输入继电器、Y为输出继电器、M为辅助继电器、S为状态继电器、T为定时器、C为计数器、D为数据寄存器和指针(P、I、N)。关于各类元件的功用,各种版本的PLC书籍均有介绍,故在此不介绍,但一定要清楚各类元件的功能。
编程元件的指令由二部分组成:如 LD(功能含意)X000(元件地址),即 LD X000,LDI Y000......。
3、熟识PLC基本指令:
(1)LD(取)、LDI取反)、OUT(输出)指令;LD(取)、LDI(取反)以电工的说法前者是常开、后者为常闭。这二条指令最常用于每条电路的第一个触点(即左母线第一个触点),当然它也可能在电路块与其它并联中的第一个触点中出现。
这是一张梯形图(不会运行)。左边的纵线称为左母线控制工程网版权所有,右母线可以不表示。该图有三个梯级;第1梯级;左边第一个触点为常开,上标为X000,X表示为输入继电器,其后的000数据,可以这样认为它使用的是输入继电器中的编号为第000的触点(下同)。其指令的正确表示应为(如右图程序所示):0、LD X000 (前头的0 即为从第0步开始,指令输入时无须理会,它会自动按顺序显示出)。???? 第2梯级;左边的第一个触点为常闭触点,上标为T0,T表示定时器(有时间长短不同,应注意),0则表示定时器中的编号为0的触点。其指令的正确表示应为:2、LDI?? T0(如程序所示)。?? 第3梯级;左边第一个触点为常闭,上标为M0, M为辅助继电器(该继电器有多种,注意类别),其指令的正确表示应为:4、LDI M0(如程序所示)。本梯级的第2行第一个触点为常开,上标为Y000,Y表示输出继电器,由于该触点与后面Y001触点呈串联关系控制工程网版权所有,形成了所谓的电路"块",故而其触点的指令应为 5、LD Y000。总之LD与LDI指令从上面可以看出,它们均是左母线每一梯级第一触点所使用的指令。而梯级中的支路(即第3梯级的第2行)有二个或二个以上触点呈串联关系,其第一触点同样按LD或LDI指令。可使用LD、LDI指令的元件有:输入继电器X、输出继电器Y、辅助继电器M、定时器T、计数器C、状态继电器S。OUT为线圈驱动指令,该指令不能出现在左母线第一位。驱动线圈与驱动线圈不能串联,但可并联。同一驱动线圈只能出现一次,并安排在每一梯级的最后一位。如上图中的1、OUT Y000,3、OUT Y001www.cechina.cn,Y为输出继电器,其线圈一旦接获输出信号CONTROL ENGINEERING China版权所有,可以这样认为www.cechina.cn,线圈将驱动其相应的触点而接通外部负载(外部负载多为接触器、中间继电器等)。而上图8、OUT T0 K40 为定时器驱动线圈指令,其中的K为常数40为设定值(类似电工对时间继电器的整定)。可使用OUT指令元件有:输出继电器Y、辅助继电器M、定时器T、计数器C、状态继电器S。
(2)触点的串联指令AND(与)ANI(与非);前者为常开,后者为常闭。二者均用于单个触点的串联。二指令可重复出现,不受限制,。如下图所示。
由第1梯级来看;X000、T0、Y001三触点成串联关系,即T0的常闭串接于X000的后端,而Y001的常闭则串接于T0常闭的后端。由于都是常闭故用ANI指令。现来看第2梯级;X000、M0、Y001www.cechina.cn,同样三触点也是串联关系,M0的常闭接点串接于X001的后端,而Y000的常开接点则串接于M0的后端。故M0的指令用ANI,而Y000的指令则用AND(具体编程详上图),一句话只要是串联后面是常开的用AND,是常闭的则用ANI。可使用AND、ANI指令元件有:输入继电器X、输出继电器Y、辅助继电器M、定时器T、计数器C、状态继电器S。
(3)触点并联指令OR(或)、ORI(或反);触点并联时,不管梯级中有几条支路,只要是单个触点