西门子模块6ES7223-1HF22-0XA8详细资料
1 引言
PLC是专为工业控制而设计的专用计算机,其体积小,具有高可靠性和很强的抗干扰能力,在工业控制中得到了广泛的使用。随着工业的自动化程度的提高,对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正常完成上位机命令。
3 PLC命令的编写
在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 Tbbbb1.Init_PLC(nPort:integer);
begin
if MSComm.PortOpen then
MSComm.PortOpen:=False;
MSComm.Commport:=nPort;
//通信端口选择
MSComm.Settings:=‘9600,e,7,1‘;
//1位起始位,7位数据位,偶效验,2位停止位,9600bps
MSComm.PortOpen:=True;//打开串口
end;
//FCS校验
function FCS(s:bbbbbb):variant;
vari,len,tmpVar:integer;
DataCheck:byte;
f1,f2:byte;
begin
f1:=0;
f2:=0;
DataCheck:=0;
len:=length(s);
tmpVar:=0;
for i:=1 to len do
begin
DataCheck:=ord(DataCheck) xor ord(s[i]);
end;
f1:=DataCheck and $0f;
f2:=DataCheck and $f0;
f2:=f2 shr 4;
result:=inttostr(f2)+inttostr(f1);
end;
// 调用MSComm控件实现PLC通信
procedure Tbbbb1.HandShake_PLC;
var
tmpByte1,tmpByte2:char;
tmpVar:bbbbbb;
s:bbbbbb;
begin
Init_PLC(1);
&nbs
p; s:=Edit1.text;
tmpVar:=s+inttostr(FCS(s))+‘*‘+chr(13);
MSComm.RThreshold:=0;
MSComm.Output:=tmpVar;
//向串口输出数据
sleep(1000);// 延时
tmpVar:=MSComm.bbbbb;
//从串口读取数据
tmpByte1:=tmpVar[5];
tmpByte2:=tmpVar[6];
if tmpByte1=chr(48)& tmpByte2:=chr(48);
//校验码等于00,PLC正常完成操作
then
begin
Showmessage(‘发送的数据正确‘);
else
Showmessage(‘发送的数据有问题‘);
//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实验课程,而开设PLC实验课需要解决的关键问题是PLC的控制对象。PLC的控制对象可以是实物模型,但它存在成本高、难维护、种类少等不足之处;也可以是用指示灯模拟显示PLC控制对象的实验箱,它与实物模型相比成本较低,也存在难维护、种类少、结果观察不直观等缺点;应用组态软件在计算机屏幕上全真模拟PLC的控制对象可以弥补上述不足,它还能以动画形式演示PLC控制对象的工作过程,具有成本低、免维护、灵活多样、形象直观等优点。
从教学意义上说,如果能用计算机全真模拟被控对象,不但可以克服实物模型的缺点,可利用有限的设备及多样化的程序丰富学生的实验课内容,增强PLC实验课的教学效果。北京亚控公司推出的“组态王”软件,具有可靠性高、通信快速、功能强大、界面友好和开发简洁等优点,可用来开发实验室仿真PLC控制对象,满足为学生开设实验课的需要。
1 系统构成
利用“组态王”软件设计PLC仿真控制对象,是指在计算机上运行事先编写好的“组态王”应用程序,用软件来代替硬件(被控对象)的工作,借助计算机屏幕观察控制过程与结果。仿真PLC控制对象的实验系统结构如图1所示。上位机微机配有“组态王6.5”软件和三菱PLC编程软件FXGPWIN,下位机采用三菱FX2N-64MR型的PLC。“组态王”软件通过RS232C接口与PLC之间进行通信,并监控PLC所有存储器、控制器及I/O接口的状态,以变量值的形式传输到计算机上,供上位机使用、处理。
图1 仿真实验的系统结构图
2 系统的实现
利用“组态王”软件设计的应用软件,可以仿真多种PLC控制对象。仿真的被控对象不仅可以接受多种由PLC发出的控制信号,如逻辑开关信号、继电器控制信号、脉冲信号和各种数值信号等,还能按照程序的算法以动画、数值、文字、标尺等形式在计算机屏幕上反映出PLC的控制过程与结果,可以直接从屏幕上观察PLC的控制结果正确与否;“组态王”亦可向PLC发出各种命令信号,如逻辑开关控制信号、继电器开关信号、中断信号及位置信号等。“组态王”还能以按钮、滑动标尺、数值输入及单选框、复选框等形式向PLC发出各种命令和输出各种参数,以配合PLC的控制,反映PLC与被控对象(软件仿真的被控对象)及控制结果之间的关系。
要使画面中各图素能够生动、逼真的运动或显示,在“组态王”中需定义一些内存变量与外部I/O变量进行配合,并通过在其应用程序命令语言中书写程序控制自己的应用程序,驱动画面,用这种仿真方法开发PLC仿真控制对象,其优点是周期短、费用低、可靠性高,能节省电力资源,维护要求较低,不会危及人身和设备安全;其模拟效果逼真,人机界面生动友好,能达到很好的实验效果。
在实验教学中,学生既可将计算机看作“被控对象”,用PLC对其进行控制;又可在计算机屏幕上以仿真动画形式直观看到程序的执行结果,从而极大地提高学生的兴趣,强化他们的动手能力;可以增强学生的参与意识,使之对可编程控制器的理解更加深入,从而达到实验目的,终提高教学质量。
3 开发要求
利用仿真模拟技术开设PLC实验课,开发的仿真PLC被控对象满足如下要求:
1)组态仿真画面一般由2部分构成:一是仿真的PLC控制对象;二是仿真操作面板。有时根据系统控制对象不同,还会有一些报表。
2)“用户”可以用鼠标点击屏幕上的按钮,发出PLC所需要的输入信号(行程开关模拟信号、按钮模拟信号)。PLC接到该信号后,经过控制程序(实验课学生编写的PLC控制程序)发出控制指令。上位机接到控制指令后,控制画面上仿真控制对象的图形、动画、指示灯及机械、显示等动作,在报表中绘出一些曲线,填入一些数值。
3)接到电源信号后,模拟电源指示灯亮,显示红色,以示“组态王”与PLC通信正常。
4)仿真界面直接显示PLC仿真控制对象的物理位置和运行方向,可直观反映PLC程序的运行结果。
5)仿真PLC控制对象是以画面形式反映PLC程序执行结果的,故画面应尽可能逼真于模仿实物。
4 开发实例
以下给出我们开发的仿真PLC被控对象中的一部分,包括十字路口交通灯、机械手和水位控制系统。这些开发项目完全可以直接应用到PLC教学实验中,因篇幅所限,文中未给出PLC的梯形图程序及组态设计过程。
4.1十字路口交通灯仿真系统
1)控制要求。a.南北向和东西向主干道均设绿灯30s,绿灯闪亮3s,黄灯2s和红灯30s。当南北主干道红灯点亮时,东西主干道先点亮绿灯,之后绿灯闪亮,再后点亮黄灯;当东西主干道红灯点亮时,南北主干道先点亮绿灯,之后绿灯闪亮,再后点亮黄灯。b.南北和东西向人行道均设有通行绿灯和禁止红灯。南北人行道通行绿灯应在东西向主干道点亮后才允许点亮,接5s绿灯闪,其他时间为红灯;同样,东西人行道通行绿灯于南北主干道绿灯点亮后才允许点亮,接5s绿灯闪,其他时间为红灯。c.点按“停止”按钮,工作立刻停止。
2)PLC输入输出表。交通灯控制PLC的I/O点分配表如表1所示。十字路口有12只红、黄、绿灯,人行道有16只红、绿灯,同一方向的同色灯动作,应为一个输出,在表中只占用10个PLC输出端点。
图2 十字路口交通灯组态仿真画面
画面中汽车和行人的动作仅与“组态王”的内存变量有关,可通过在其应用程序命令语言中编制程序控制汽车与行人的速度和方向,与PLC的程序无关。
4.2 机械手仿真系统
1)控制要求。a.系统工作方式分自动、手动2种。b.在自动工作方式下,点按启动按钮,机械手向下移动5s,夹紧2s,随后上升5s,右移10s,下移5s,放松2s,上移10s,完成一个工作周期,回到初始位置.随后继续进行下个周期的运行。如果按下停止按钮,则本工作周期完成,机械手返回初始位置后停止运行。C.采用手动工作方式,可分别控制各运动部件。
2)PLC输入输出表。机械手控制PLC的I/O点分配表如表2所示。输入端点所接的控制部件除了“自动/手动”开关为转换开关以外,其他均为自动复位点动按钮。
图3 机械手组态仿真手动画面
4.3 混合液体仿真系统
设H,T,L为液位传感器,液面淹没时为ON;YV1及YV2为进料电磁阀,YV3为排料电磁阀,M为搅拌电动机。
1)控制要求。a.初始状态:容器是空的,3个阀门均关闭(YV1=YV2=YV3=OFF),液位传感器输出触点断开(H=I=L=OFF),电机停止(M=OFF)。b.启动操作:按一下启动按钮SB1,阀门YV1打开(YV1=ON),液体A流入容器;当液面到达I时,I=ON,使阀门YV1关闭(YV1=OFF),阀门YV2打开(YV2=ON),液体B流入容器;当液面到达H时,H=ON,使阀门YV2关闭(YV2=OFF),启动电机M(M=ON)开始搅匀;经过60s,搅匀后,M停止搅拌(M=OFF),阀门YV3打开(YV3=ON),开始放出混合液体;当液面低于L时,L由ON变为OFF,再过2s后,使阀门YV3关闭(YV3=OFF),容器放空,工作结束。c.停止操作:在工作过程中,按一下停止按钮,系统立即停止工作。
2)PLC输入输出表。混合液体控制PLC的I/O点分配表如表3所示。控制混合液体PLC输入/输出表如表3所示。在PLC输入端接一个对搅拌电动机起过载保护作用的热继电器常闭触点。当电机发生过载时,此触点断开时系统将停止工作。
表3 混合液体控制PLC的I/O点分配表
3)组态仿真画面。混合液体组态仿真画面如图4所示。当“组态王”和PLC通信正常时,点按启动按钮,就可在画面中非常形象直观地观察到管道中水的流动、储液罐中液体的升降和搅拌器的转动,以及水位传感器接通的情况。在画面中设计了液位报警窗口,当液位数值变化异常时将进行报警;还设计了历史曲线、实时曲线、数据报表画面,以便对液位进行趋势分析。由于篇幅所限,此画面没有给出。
5 实验过程
开发的仿真PLC控制对象画面中的图素已经建立了动画连接。“组态王”与PLC进行通信,已经验证了仿真监控画面运行的正确性,可实现真实PLC控制对象所要求的一切功能。当学生做实验时,不必为其提供梯形图,可以先通过计算机屏幕为学生展示开发好的仿真控制画面,使学生对自己设计的控制系统有感性认识,从而激发学习兴趣。具体实验步骤如下:
1)按照每个实验给出的控制要求和PLC输入输出表,画出PLC原理图和控制程序流程图,让学生学会PLC的实际接线和电气元件的选型及标准画法,使实验更接近实际。
2)应用三菱PLC编程软件FXGPWIN在计算机上自编程序。可使用不同的算法和指令编写程序,但终要实现系统的相同控制。
3)PLC程序编制完成后,要进行调试修改。利用PLC编程软件中的“编译”命令,检查PLC程序是否有语法错误,如果没有再将程序下载到PLC中;利用PLC编程软件中的“监控”和“强制”命令,调试PLC程序。
4)PLC与组态软件通信。通过运行仿真画面,可形象直观地观察仿真PLC被控对象的工作情况,由此也可验证PLC程序正确与否。
6 结 语
将仿真技术应用于PLC教学实验,解决了无控制对象及无法开设PLC实验课的问题。仿真方法还可在教师的科研中发挥巨大作用,既能节约大量的实验经费,又能缩短实验时间,提高实验的安全性,仿真控件的开发周期短,开发后免维护,可以开发多个仿真控件,增强实验的多样性,以更好地达到教学目的。目前,我们已经开发了运料小车、自动售货机、五层楼电梯、霓虹灯等仿真控件,并编写了实验指导书以配合课堂教学,帮助学生积累工程现场的经验,使之得到全面综合的锻炼。