《上位机与可编程控制器的通信与监控设计.pdf》由会员分享,可在线阅读,更多相关《上位机与可编程控制器的通信与监控设计.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、上位机与可编程控制器的通信与监控设计上位机与可编程控制器的通信与监控设计是专为工业控制而设计的专用计算机,其体积小,具有高可靠性和很强的抗干扰能力,因而在工业控制中得到了广泛的使用。随着工业的自动化程度的提高,对 PLC 的应用提出了更高的要求:更快的处理速度,更高的可靠性,控制与管理功能一体化。控制与管理一体化也就是将计算机信息处理技术,网络通信技术应用于 PLC,使 PLC 用于下位分散控制,用计算机提供图形显示界面,同时对下位机进行监控。本文讨论的是上位计算机与欧姆龙 CPM2A 型 PLC 的通信与监控设计。2 通信协议2 通信协议2.1 CPM2A 的通信链接方式CPM2A 有三种通
2、信联系方式:上位链接系统、同位链接系统、ComPoBus 通信系统。工厂自动化系统中常把三种系统复合起来一起使用来实现工厂自动化系统要求的多级功能。复合型 PLC 网络中,上位链接系统处于最高位,负责整个系统的监控优化。上位机与 CMP2A 的通信有两种方式:上位机命令与 PLC 通信命令。上位机命令方式上位机处于主动,命令由上位机发往 PLC。采用上位机命令方式能方便的实现上位机对 PLC 的监控。上位机与 CPM2A 采用 RS-232端口进行通信,串口接线如图1所示。图1 CPM2A 与上位机的链接2.2 CPM2A 的上位通信协议CPM2A 的数据是以帧的格式发送的,当通信命令小于一帧
3、时,发送格式如图2所示。其中正文最多122个字符。当命令块内容大于一帧时,由起始帧、中间帧、及结果帧组成。起始帧最多131个字符,中间帧及结束帧最多128个字符。起始帧由设备号、命令码、正文、FCS、和分界符构成。中间帧有正文、FCS、分界符组成。结束帧由正文 FCS、结束符组成。上位机每发送完一帧,在收到 PLC 发回的分界符后再发送下一帧。图2 CPM2A 通信时命令块的格式命令块中的校验码 FCS 是位二进制数转换成的位 ASC字符。这位数据是将一帧数据中校验码前的所有字符的 ASC码位按连续异或的结果。转换成字符时,按照位十六进制数转换成对应的数字字符。PLC 接收到上位机发送的命令帧
4、后,自动产生响应块,响应块的格式与图格式类似,只是在命令码后面多了两位的响应码,响应码表示了上位机命令的出错信息。响应码00表示 PLC 正常完成上位机命令。PLC 命令的编写PLC 命令的编写在 CPM2A 的上位链接系统中,PLC 接收指令并被动地给上位机返回响应块。所以作为下位机的 PLC 不需要编写通信程序。上位机与 PLC 的通信不能改变 PLC 的输入状态。为了通过上位机改变 PLC 的输出,在编写下位机的程序时就要利用 PLC 的工作位,通过上位机改变工作位的状态来改变 PLC 的输出,从而达到上位机对 PLC 输出的控制。如图3所示,在梯形图中加入了工作位3.00,4.00。系
5、统正常工作时3.00,4.00置 OFF,当需要实现上位机控制时,把3.00置 ON,使 PLC 的输入端0.00失效,通过工作位4.00的通断来控制系统的输出。图3 实现上位机监控的 PLC 编程4 编写上位机通信程序4 编写上位机通信程序在上位链接系统中,通信一般都是由上位机发起的,按 PLC 标准通信进行连接。上位机给 PLC 发送操作指令,PLC 按照指令执行相应的操作,同时给上位机返回数据。串口通信流程如下图。图4 通信流程图4.1 编写上位通信程序编写通信程序可以采用高级语言或者汇编语言,下面给出的例子是用 Delphi 编写的上位机与 CPM2A 型 PLC通信程序.通信采用标准
6、通信模式。通信界面如图5。图5 通信界面/程序初始化:procedure TForm1.Init_PLC(nPort:integer);beginif MSComm.PortOpen thenMSComm.PortOpen:=False;MSComm.Commport:=nPort;/通信端口选择MSComm.Settings:=9600,e,7,1;/1位起始位,7位数据位,偶效验,2位停止位,9600bpsMSComm.PortOpen:=True;/打开串口end;/FCS 校验function FCS(s:string):variant;vari,len,tmpVar:integer;
7、DataCheck:byte;f1,f2:byte;beginf1:=0;f2:=0;DataCheck:=0;len:=length(s);tmpVar:=0;for i:=1 to len dobeginDataCheck:=ord(DataCheck)xor ord(s);end;f1:=DataCheck and$0f;f2:=DataCheck and$f0;f2:=f2 shr 4;result:=inttostr(f2)+inttostr(f1);end;/调用 MSComm 控件实现 PLC 通信procedure TForm1.HandShake_PLC;vartmpByte
8、1,tmpByte2:char;tmpVar:string;s:string;beginInit_PLC(1); s:=Edit1.text;tmpVar:=s+inttostr(FCS(s)+chr(13);MSComm.RThreshold:=0;MSComm.Output:=tmpVar;/向串口输出数据sleep(1000);/延时tmpVar:=MSComm.Input;/从串口读取数据tmpByte1:=tmpVar5;tmpByte2:=tmpVar6;if tmpByte1=chr(48)&tmpByte2:=chr(48);/校验码等于00,PLC 正常完成操作th
9、enbeginShowmessage(发送的数据正确);elseShowmessage(发送的数据有问题);/end;end;4.2 实现上位机对 PLC 的监控编写通信程序建立了上位机与PLC的连接.在PLC的任何工作方式下都可以通过”读”指令读取PLC的状态.从而对 PLC 进行监视.只有当 PLC 的工作方式为监视的情况下才可以通过上位机对 PLC 进行控制.所以在需要上位机实施控制的系统里面 PLC 都必须设置为监视工作方式.上位机只需要设置 PLC 的相应工作位就可以实现对 PLC 的控制.下图为 PLC 上位机控制过程。图 a 表示 PLC正常工作时输出由输入0.00控制,当需要把 PLC 的控制转由上位机控制时,只需要通过向 PLC 输入00RR00030001,置3.00为 ON,切断0.00的通路,这样输出10.00就转由4.00控制,当输入00WR00040001时,4.00为 ON,输出位10.00产生输出。(a)PLC 正常工作(b)上位机控制图6 PLC 的上位机控制5 结束语5 结束语本文探讨了实现 PLC 的上位链接系统通信的方法,以及要实现上位机对下 PLC 控制的 PLC 编程。通过上位机对 PLC 的监视与控制,可用方便的实现工厂生产过程的自动化监控。
限制150内