用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
上位机与可编程控制器的通信与监控设计
[正文]:      是专为工业控制而设计的专用计算机,其体积小,具有高可靠性和很强的抗干扰能力,因而在工业控制中得到了广泛的使用。
随着工业的自动化程度的提高,对plc的应用提出了更高的要求:更快的处理速度,更高的可靠性,控制与管理功能一体化。
控制与管理一体化也就是将计算机信息处理技术,网络通信技术应用于plc,使plc用于下位分散控制,用计算机提供图形显示界面,同时对下位机进行监控。
本文讨论的是上位计算机与欧姆龙cpm2a型plc的通信与监控设计。
2 通信协议2.1 cpm2a 的通信链接方式cpm2a有三种通信联系方式:上位链接系统、同位链接系统、compobus通信系统。
工厂自动化系统中常把三种系统复合起来一起使用来实现工厂自动化系统要求的多级功能。
复合型plc网络中,上位链接系统处于最高位,负责整个系统的监控优化。
上位机与cmp2a的通信有两种方式:上位机命令与plc通信命令。
上位机命令方式上位机处于主动,命令由上位机发往plc。
采用上位机命令方式能方便的实现上位机对plc的监控。
上位机与cpm2a采用rs-232端口进行通信,串口接线如图1所示。
 
点击查看大图片
图1 cpm2a与上位机的链接2.2 cpm2a的上位通信协议cpm2a的数据是以帧的格式发送的,当通信命令小于一帧时,发送格式如图2所示。
其中正文最多122个字符。
当命令块内容大于一帧时,由起始帧、中间帧、及结果帧组成。
起始帧最多131个字符,中间帧及结束帧最多128个字符。
起始帧由设备号、命令码、正文、 fcs、和分界符构成。
中间帧有正文、fcs、分界符组成。
结束帧由正文fcs、结束符组成。
上位机每发送完一帧,在收到plc发回的分界符后再发送下一帧。
 
点击查看大图片
图2 cpm2a 通信时命令块的格式命令块中的校验码fcs是8位二进制数转换成的2位ascⅱ字符。
这8位数据是将一帧数据中校验码前的所有字符的ascⅱ码位按连续异或的结果。
转换成字符时,按照2位十六进制数转换成对应的数字字符。
plc接收到上位机发送的命令帧后,自动产生响应块,响应块的格式与图2格式类似,只是在命令码后面多了两位的响应码,响应码表示了上位机命令的出错信息。
响应码00表示plc正常完成上位机命令。
3plc命令的编写在cpm2a的上位链接系统中,plc接收指令并被动地给上位机返回响应块。
所以作为下位机的plc不需要编写通信程序。
上位机与plc的通信不能改变plc的输入状态。
为了通过上位机改变plc的输出,在编写下位机的程序时就要利用plc的工作位,通过上位机改变工作位的状态来改变plc的输出,从而达到上位机对plc输出的控制。
如图3所示,在梯形图中加入了工作位3.00,4.00。
系统正常工作时3.00,4.00置off,当需要实现上位机控制时,把3.00置on,使plc的输入端0.00失效,通过工作位4.00的通断来控制系统的输出。
 
点击查看大图片
图3 实现上位机监控的plc编程4 编写上位机通信程序在上位链接系统中,通信一般都是由上位机发起的,按plc标准通信进行连接。
上位机给plc发送操作指令,plc按照指令执行相应的操作,同时给上位机返回数据。
串口通信流程如下图。
 
点击查看大图片
图4 通信流程图4.1 编写上位通信程序编写通信程序可以采用高级语言或者汇编语言,下面给出的例子是用delphi编写的上位机与cpm2a型plc通信程序.通信采用标准通信模式。
通信界面如图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;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 36;0f;f2:=datacheck and 36;f0;f2:=f2 shr 4;result:=inttostr(f2)+inttostr(f1);end;// 调用mscomm控件实现plc通信procedure tform1.handshake_plc;vartmpbyte1,tmpbyte2:char;tmpvar:string;s:string;begininit_plc(1);&nbs p; s:=edit1.text;tmpvar:=s+inttostr(fcs(s))+‘*‘+chr(13);mscomm.rthreshold:=0;mscomm.output:=tmpvar;//向串口输出数据sleep(1000);// 延时tmpvar:=mscomm.input;//从串口读取数据tmpbyte1:=tmpvar[5];tmpbyte2:=tmpvar[6];if tmpbyte1=chr(48)& tmpbyte2:=chr(48);//校验码等于00,plc正常完成操作thenbeginshowmessage(‘发送的数据正确‘);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 结束语本文探讨了实现plc的上位链接系统通信的方法,以及要实现上位机对下plc控制的plc编程。
通过上位机对plc的监视与控制,可用方便的实现工厂生产过程的自动化监控。



网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-02 11:10:54) 流量统计