浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子6ES7214-2AS23-0XB8库存现货

西门子6ES7214-2AS23-0XB8库存现货

我公司计划推出一款B级新车B12,由于工艺线路的特殊性,此车型需要在四厂涂装车间喷涂,然后经过二厂涂装车间的喷蜡线进入二厂总装车间装配。具体工艺布局如图1所示:B12经过RB003~RB001(图中红色部分)至CC09-TC/RB048(图中黑色部分),然后经过CC09-RB050、CC09-RB052/054到CC09-RB056,经过此处的MOBY-i读写头,读取滑橇上的移动数据载体内的信息,并将其中的车型信息发给总装车间。其他车型来自CC09-RD026或CC09-RD06,通过CC09-TC/RB048进入喷蜡线。但是B12车型所用的滑橇是从滑橇返回线随机抽取的,滑橇数据载体内部仍然记录着先前携带车身的有关信息,与当前携带的车型B12并不相符。为了保证此处读取的车型信息与实际车型一致,直接的办法是在此读写站之前新增一个读写站,通过人工方式,将车型信息写入滑橇数据载体。

newmaker.com
图1 现场工艺流程布置

由于二厂涂装车间的设备由德国Dürr公司提供,输送系统采用滚床和滑橇的输送方式。设备的控制采用了Dürr公司基于西门子S7-PLC开发的模块化标准程序。为了实现输送设备和自动喷涂系统之间的车型、喷涂颜色信息传递,以及根据质量信息,判断车身物流走向等目的,输送设备采用了RFID射频识别系统。

二厂涂装车间采用的是西门子MOBY-i识别系统,其硬件系统包括安装在滑橇上的数据载体MDS430,安装在特定位置的读写头SLG43,安装在PLC主机架上的ASM451接口模块,接口模块内置CM422通信卡与读写头进行通信。

另外MOBY-i的软件系统也比较复杂,Dürr公司在其软件内部进行了大量的封装处理,给用户调整修改其软件带来了很大的困难。

同时,增加MOBY-i系统还需要增加相关的硬件设备,并且要求将读写头安装在图1中红色设备上,而红色部分与黑色部分分别属于两个不同的PLC控制组,两者之间需要设计大量的连锁信号,这也给我们带来了很大的技术难度。

解决方案

为了不增加改造成本,我们另寻其他途径,并对这两部分设备的PLC控制软件进行了深入的研究,发现CC09-RB056的MOBY-i程序把读写的结果存放在一个数据块DB580内部,而程序的其他部分都从数据块获取车型信息,于是我们把研究方向放在该数据块上。在CC09-RB056工位,若当前实际的车型为B12,则对MOBY-i的读写结果进行修改,终解决了这个问题。

首先定义4个布尔类型变量,分别记录进入CC09-RB048、RB050、RB052和RB056的车型是否为B12,具体变量定义如表所示。

变量定义
newmaker.com

由于来自RB001(红色部分)的车型都是新车型B12,而来自CC09-RD026、CC09-RD046(黑色部分)的车型都不是B12,利用这个规律可以判断进入CC09-TC/RB048的车型,并将判断结果存在RB048-TYPE-B12中,当滑橇由CC09-RB048进入CC09-RB050时,把变量RB048-TYPE-B12的信息复制到变量RB050-TYPE-B12,依次传递下去。在CC09-RB056滚床位置,MOBY-i读写头读取滑橇MDS内部的全部信息,并存储在数据块DB580内部。这时我们可以据变量RB056-TYPE-B12的状态来决定是否对数据块DB580内部的车型信息数据进行中途修改:

若RB056-TYPE-B12=“TRUE”,则修改;

若RB056-TYPE-B12=“FALSE”,则数据不变。

其他的程序将根据DB580内部存储的车型信息,给总装设备发送信息,通知其发送相应的吊具来接喷漆车身。

上述的方法中涉及到3个关键技术环节,即信息的获取、传递和修改。

1.RB048-TYPE-B12初始信息的获取

关键是检测滚床在运动状态下,CC09-RB048上的3个接近开关的触发顺序:若RB001的占位开关和CC09-RB048的前占位开关同时触发,表明车型为B12,RB048-TYPE-B12=“TRUE”;若CC09-RD026或者CC09-RD026的占位开关与CC09-RB048的后占位开关同时触发,表明车型非B12, RB048-TYPE-B12=“FALSE”。具体程序如图2所示。

newmaker.com
图2 初始车型信息获取

2.车型信息传递

车型信息要从RB048-TYPE-B12传给RB050-TYPE-B12,从RB052-TYPE-B12到RB056-TYPE-B12。以车身滑橇从CC09-RB048移动到CC09-RB050为例,其关键步骤是判断在车身由CC09-RB048进入CC09-RB050的过程中,若RB048-TYPE-B12=“TRUE”,则对RB050-TYPE-B12进行置位操作,否则对RB050-TYPE-B12进行复位操作,详细程序如图3所示。

newmaker.com
图3 车型信息传递

3.车型信息的修改

按照车间车型定义表,B12车型代号定义为“0940”。在CC09-RB056位置,MOBY-i读写站读取滑橇MDS信息中,并存储在在数据块DB580中,以后的操作都依此数据为准。若RB056-TYPE-B12=“TRUE”,则用新车型信息“0940”修改数据块DB580。后面的程序将根据数据块内部的车型信息来通知总装车间发送相应的吊具过来。具体程序如图4所示。

newmaker.com
图4 车型信息修改

结语

至此,我们就完成了相关的技术改造,在不增加任何硬件投资的前提下,仅通过对现有软件的探索和增加部分PLC程序,实现了与增加MOBY-i站完全相同的功能,大大简化了项目改造技术方案,并节省了设备投资费用以及聘请Dürr公司专家的劳务费用,同时也极大地鼓舞了员工学习、研究和提升业务技能的积极性。

1、设置有关密码和保护级别

系统程序要设置有关密码或保护级别,防止因误操作或被人为改动而被破坏。

2、建立维护和定期保养的规章制度,完善岗位责任制巡回检查制度

包括建立系统设备档案(如设备一览表、系统资料、程序清单和竣工图等)采用统一的记录格式来记录系统的运行状况、故障现象和维修情况等。

3、定期清洁措施

应根据不同的应用地点、场所,制定定期清洁措施。如定期清洁和更换机柜的空气过滤网,确保机柜空气洁净和通畅,防止大量粉尘物积在处理器和I/O模块上。清洁时要注意安全,不要证污物掉入系统模块内造成模块损坏和引起系统停机。

4、定期检查

定期检查好结合生产开停装置进行。

(1)PLC系统的检查。检查PLC的工作环境,包括供电、环境,检查系统所有模块的运行状态、锂电池的使用状态等。

(2)连接电缆的检查。检查是否连接牢固,连接处是否氧化严重,对有问题的地方进行处理。

(3)中间继电器是否有振动松脱。一次元件根据其技术参数进行定期校验和检查,确保输入准确和输出信号执行顺畅。

(4)接地和接地电阻检查。

(5)对系统的用户程序进行备份。

(6)长期处于运行状态(或长周期运行)的系统,必须在一定的时间间隔(如1年)进行全面的检查,有条件的可以做点检处理。

在工业控制中,用PLC控制的工程在上/下位机通讯上一般采用RS-232/RS-485串口通讯,这种方法对于数据量较大,通讯距离较远,实时性要求高的控制系统,很难满足通讯需要。

近年来随着计算机网络技术的飞速发展,网络化数控已经成为现代制造业发展的必然趋势, 控制系统正向虚拟化、网络化、集成化、分布化和节点智能化的方向发展。[1]许多大型PLC厂商生产的PLC都配备了相应的以太网通信模块,本文讨论了OMRON PLC的以太网通信体系结构,并以CP1H PLC的ENT2l以太网模块为例实现与计算机的通信。

1. Winsock网络通信控件

Winsock控件是不可视控件,它提供了访问TCP和UDP网络服务非常简便的途径,使编程人员开发客户/服务器应用程序时,不必了解TCP的细节或调用低级的Winsock API函数,只通过设置Winsock控件的属性并调用其方法,就可直接连接到一台远程计算机进行,并可实现双向数据交换。

WinSock主要支持两种类型的套接字:①流式套接字(Stream Socket)也称面向连接方式,该方式对应的是TCP协议,其传输特点是通信可靠性高,可以保证数据流的传输是可靠的、有序的、无重复的,可提供双向的数据流,数据被看作字节流,无长度限制。②数据报套接字(Datagram Socket)又称无连接方式,对应的是UDP协议,这种方式不提供数据传输的正确性、有序性和无重复性,因为它支持面向记录的数据流。因此,传输的数据可能丢失和重复,并且接收顺序混乱,报文长度是有限的。考虑到本系统对通信可靠性和正确性的要求很高,选用流式套接字方式。基于Client/Server模式的流式套接字通讯过程如图1所示。

newmaker.com
图1 流式套接字进程通讯过程时序图

2.Ethernet网络通信单元的设置

在组建网络时,根据网络类型的不同,网络中的每个节点需要安装相应的通信单元,PLC上需安装Ethernet网络通信模块,例如0MR0N公司的CJ1W—ETN21以太网模块。应用之前必需对网络进行必要的设置,分为开关设置和CPU总线单元系统设置。

开关设置主要包括以下几项内容:确定分配给CJ1W—ETN21单元的内存工作区(CIO区、DM区),该地址在CPU总线区,由UNIT No.开关确定ETN单元的单元号范围为0~F;NODE No.旋转开关设定两组l6进制数作为ETN单元在网络中的节点号,范围为O1~7E;IP地址设置网络号和主机节点号,由32位二进制数组成,分4段以十进制数表示。

CPU总线单元设置主要通过编程设备如CX—Programmer软件或编程器对网络单元进行模式、本地IP地址、子网掩码、FINS端口号、FTP登录名及口令和IP路由器表等项进行设定。若使用FINS/TCP协议,则还需在以太网单元设置中修改FINS/TCP项的部分参数,如:自动分配的FINS节点号、是否保持激活等项。

3.面向上位计算机的通信协议

如图2所示,以太网的分层模型分为物理层(Physical Layer)、网际层(Internet Layer)、传输层(Transpot Layer)和应用层(Application Layer)。其中:传输层可使用无连接的UDP或需建立连接的TCP协议;应用层为FINS(Factory Interface Network Service)协议,FINS协议是由OMRON公司开发的用于工厂自动化控制网络的指令响应系统。主要规定对PLC存储空间的数据读写等操作方法。应用层使用FINS协议,传输层使用TCP协议的通信实现方法称为FINS/TCP方法

newmaker.com
图2 网络的分层结构

FINS协议包含指令系统和响应系统,其命令帧格是由FINS报头、指令代码、响应代码和正文等几部分组成。从上位计算机发出的指令和响应必须符合下面帧的格式要求,并提供合适的FINS报头信息。[3-4]FINS通信服务是通过FINS命令帧和它们对应的响应帧交换实现的。

FINS命令/响应帧格式如图3所示。FINS/TCP header中规定了五种命令,用于客户机(host computer)与服务器(PLC)之间通信:发送客户机节点地址(node address);(2)发送服务器节点地址(node address);(3)发送Fins frame;(4)Fins frame发送出错通知;(5)客户机与服务器联机确认。

newmaker.com
图3 FINS命令/响应帧格式

4.通信程序的具体实现

在新建VB工程后,需要执行VB工具栏“工程/部件” 命令,将Winsock控件添加到工程中, 并命名为“WskClient”。程序采用TCP/IP协议进行通信,其主要属性设定如下:

With WskClient

.Protocol = sckTCPProtocol ‘采用TCP/IP协议

.LocalPort = 9600 ‘本地计算机端口号

.RemoteHost = txtIP.Text ‘取得远程PLC的IP地址

.RemotePort = txtPort.Text ‘远程PLC端口号

.Bind 9600 ‘指定使用的本地端口

End With

初始化工作完成后向PLC提出连接请求,待PLC接受请求并发送应答信息后,客户端程序依照各种帧格式建立好要发送的信息帧,就可以与PLC进行双向的数据交流了。在这一过程中,可建立发送失败后的重发机制,以增强通信的可靠性。

首先,建立并发送“握手信息”指令(20字节),指明客户机节点号;当计算机接收到PLC返回帧(24字节)后,检查PLC是否收到命令,并取得服务器和客户机节点号。当计算机接收到PLC返回的数据时,会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在DataArrival事件中,可以调用GetData方法接收数据。如果接收到Close事件,则用Close方法关闭连接。另外,可用Winsock的State属性来反映当前TCP/IP的连接状态。这里仅列举主要程序如下:

‘向服务器请求连接

WskClient.Connect

TimeDelay 100

Do

DoEvents

Loop Until WskClient.state=sckConnected

‘建立并发送FINS命令帧

Private Sub SendData_Click()

ReDim SendData (19) As Byte

SendData (0) = &H46‘FINS命令帧报头的第1个字节

……

WskClient.SendData SendData() ‘发送FINS命令帧

End Sub

‘接收PLC响应帧,并分析数据

Private Sub WskClient_DataArrival(ByVal bytesTotal As Long)

Dim i As Integer

ReDim ArriveData(bytesTotal) As Byte

wsk.GetData ArriveData, vbArray + vbByte, bytesTotal

‘接收数据,保存在ArriveData数组中

For i = 0 To bytesTotal - 1

txtArData.Text = txtArData.Text & " " & ArriveData (i)

Next i

……‘其它数据处理

If ArriveData(7) <> 16 Then

MsgBox“接收信息丢失“

ElseIf SendData(19)= ArriveData (bytesTotal-5) Then

MsgBox“节点地址错误“

End If

End If

在接收信息后,当PLC收到传输过去的信息后,会将对应的命令反馈值传回,这个事件程序内的程序将它显示在文本框中,还可作进一步处理。主程序流程图如图4所示。

newmaker.com
图4 程序流程图

若采用UDP协议,则通信的基本过程与TCP相同,只是不需要建立连接。此外,UDP应用程序可以是客户机,也可以是服务器,而不必象TCP应用程序那样必须分别建立客户机程序和服务器程序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。因此如果网络中设备不是很多,且发送数据量不大时,可选择耗费计算机“资源”更小的UDP协议进行通信。

5.结束语

采用Winsock控件实现的上位机以太网通信程序,已成功应用于数字小样并条机监控系统中,该法简单实用,在不追加投资的情况下,实现车间设备的网络数据实时监控的功能,达到了理想的效果。而且以VB作为监控软件的开发平台,软件的二次开发不受限制,节约成本,并可根据需要随时对程序进行升级。为实现对控制系统进行有效的信息管理与监控,基于以太网的PLC控制系统必将有更为广泛的应用,本文的论述对解决这类问题提供了一定参考价值。


展开全文
优质商家推荐 拨打电话