1 引言
现代物流是大限度地优化从制造商到消费者之间的运输和运输流动信息的分配,是利用先进的技术和能力尽可能地减少商品库存,降低运输费用,加快交货时间并提高客户服务水平。加盟WTO后,我国商品分销、配送服务市场将逐步扩大开放的领域和范围。而物流是企业发展的关键问题,物流会影响企业总体的生存和发展。在2000年物流成本占国内国民经济生产总值(GDP)的16.7%,而美国仅为10%以下。尤其是企业的物流设备水平与发达国家之间存在着巨大的差距,主要表现为,运输效率低,物流过程浪费惊人。我们知道,差距就是潜力和发展空间,提高物流设备化水平,已成为当务之急。自动配料车是物流体系中运输分配的重要组成部分,它是能自动地存储和取出物料的系统。
2 自动配料系统工艺生产控制
自动配料装车控制系统如图1所示,其工艺流程控制要求如下:
(1) 初始状态
红灯L1灭,绿灯L2亮,表明允许qiche开进装料。料斗出料口YV2关闭,电动机M1、M2和M3均为OFF。
(2) 装车控制
?在进料时,若料斗中物料不满。料位传感器S1为OFF,5S后进料阀YV1开启进料;当料斗中物料满后,料位传感器S1为ON,则停止进料。
?装车过程中,当qiche开进到装车位置时,限位开关SQ1为ON,红色信号灯L1亮,绿色信号灯L2灭;启动电动机M3,经过2S后启动电动机M2,再经2S后后启动M1,再经过2S后才打开出料阀,YV2为ON,物料经料斗出料。
图1 自动配料车工艺流程示意图
当车装满了时,限位开关SQ2为OFF,YV2使料斗关闭,2S后M1停止,M2在M1停止2S后停止,M3在M2停止2S后停止,红灯L1灭,绿灯L2亮,表明qiche可以开走。
(3) 停机控制
按下停止按钮SB2,自动配料装车的整个控制系统终止运行。
3 系统硬件设计
为了提高自动控制系统的可靠性和设备的工作效率,系统选用MITSUBISHI的FX2-32MR型PLC作为控制器,根据自动配料装车控制的要求,设计的I/O配置及接线如图2所示。
[NextPage]
图2 I/O配置及接线图
考虑到车在位指示信号和红灯信号的同步性,输出点Y10~Y17还要用于计数输出,为了节省输出点。选用一个输出点Y2去驱动红灯L1和车在位信号D1。电动机M1~M3,通过接触器KM1~KM3控制;为了方便操作人员监控,也可以采用信号灯显示出电动机的运行状态。
4 程序软件设计
用基本逻辑指令编程自动配料装车控制系统中,进料阀YV1受料位传感器S1的控制,S1无监测信号,表明料不满,经5S后进料;S1有监测信号,表明料已满,中止进料。配料系统的启动,可以通过台秤下面的限位开关SQ1实现。当qiche开进装车位置时,在其自重作用下,接通SQ1,配料系统启动;当车装到吨位时,限位开关SQ2断开,停止配料。用基本逻辑指令设计的自动配料装车控制系统的梯形图如图3所示。
图3 自动配料装车控制系统的梯形图
经分析可知,本系统是一个按一定顺序动作的控制过程,采用可使每一工步严格按顺序动作,若用步进指令编程更为方便。
5 结束语
由于PLC引入,替代较复杂的继电-接触器控制。在保证工艺控制要求的情况下,大大的提高了生产效率,改善了设备的电气性能,提高了设备的自动化水平。该系统具有操作简单、可靠性高、工艺参数修改方便的特点,还克服了手动操作所带来的一些人为干扰因素。在生产规模较大的场合,还可以将多台由PLC控制的设备与上位计算机联网,实现“集中管理、分散控制”,在现代工业控制中,将具有广阔的应用前景,取得了良好的经济效益和社会效益
1 引言
随着物流技术的发展,条码检测已越来越多被采用。基于S7-200 PLC的条码监控系统在上位机的监控下,对采集的条码信息进行处理,利用PLC控制物件流向,并把管理信息送至上位机,使系统工作效率大大提高,节约了人力物力,有广泛的应用前景。
2 系统功能结构
如图1,该系统在物件运送的辊道上安装条码扫描器,当物件通过时自动识别物件上的条码标记,从而判断应采取的动作。系统根据读到的条码信息,按事先的约定进行处理,包括物件要存放的位置、是否放行、非正常情况的报警等、并和PLC、上位计算机进行数据交换。
图1 系统功能结构图
物件的条码由条码扫描器读入并通过通讯转换送入PLC的通讯口,我们采用的PLC是S7-200系列的226PLC。它是西门子公司生产的性能价格比很高的可编程控制器,已广泛应用于工业控制的各个领域。
3 软件设计
3.1 PLC的条码识别
PLC采用自由通讯口方式读取条码的信息,主要用到3个寄存器SMB2、SMB3、SMB30。
通讯接收字符缓冲器SMB2用于存放在自由口通讯方式下接收到的当前字符,它是一个暂存寄存器,一般应在下一步取走其中的内容。
通讯校验结果寄存器SMB3,在作自由口通讯时,PLC的通讯接口按由SMB30规定的奇偶校验方式对所接受到的信号作校验。若检测到错误,PLC自动把SMB3.0置1,根据此标志位,可决定当前信息的取舍,还可在出错的情况下,将此错误信息发给对方,要求重发。
控制字寄存器SMB30用于存储通讯方式控制字,由用户写入,属于可读写的特殊标志位寄存器,其格式如下:
3.2 PLC程序设计
(1) 程序结构
PLC的控制程序采用西门子的编程软件包STEP7完成,通过上位机与PLC进行程序传送, 其程序结构图如图2:
[NextPage]
图 2 程序结构图
(2) 程序和注释
该程序从条形码阅读器接收信息再存入两个缓冲区,从条形码jiema器传出的信息是ASCII码形式,所接受的条形码存在SIMATIC内存中。这些数据可被程序利用,但本例中仅仅将信息存入接收缓冲区,可以用SIMATIC S7-200程序包来查看。
MAIN(主程序):初始化程序
SBRO(子程序0):接收条形码
INT 0(中断程序0):缓冲区0接收
INT 1(中断程序1):缓冲区1接收
(3) 自由协议的定义
西门子S7-200系列PLC本机带有一个或两个(S7-226)485物理接口,此485口具有3种通讯协议:PPI、自由通讯协议、Profibus协议。
P PI协议主要是用来编程、PPI组网、HMI接口等;自由协议则可以由用户定义通讯协议,将CPU与任意通讯协议公开的设备联网,如上位计算机、打印机,条码器等等。所谓自由协议,用户可以通过设置特殊寄存器SMB30、SMB130(对应226的2#口)的参数改变485口的波特率、数据格式(数据位数、停止位、校验),以适应不同的通讯协议。226具有两个通讯口,可以与两个不同外设连接。
(4) 编程步骤
?设置通讯口,既设置SMB30、SMB130;
?根据外设的协议决定通讯协议;
?与通讯有关的指令及中断
指令简单,例如XMT99,0既可以完成多255个字节(字节数由VB99内设置的数决定)的发送;而接收则要由中断程序完成,每收到一个字节的数据则产生一次中断,接受到的数据保存在接收缓存器(SMB2)内,中断服务程序内您必须立即处理此数据,因为下一个接收的字节也要放在SMB2中,也就是说接收缓存器的大小只有一个字节,本例只用到接受。
3.3 上位机监控软件设计
上位PC机与PLC之间通过一个RS232/485转换器连接,上位PC机的监控程序采用北京亚控公司的组态王(Kingview)完成。组态王是国内使用较多的工控平台,具有良好的人机界面和网络功能。在组态环境下,设计人员对PLC进行参数、状态、条码设定;运行环境以人机界面的形式对条码信息监控,对PLC发出控制命令,对有关数据存储报表,利用Web功能使系统具有在线监控功能,即在上位机授权的情况下在任何一台联网的计算机上用标准的浏览器可远程监控。限于篇幅,监控程序不再详述。
4 结束语
基于S7-200的条码监控系统是济南大学山东省级重点实验室的重要组成部分,该系统的设计结构合理,运行可靠,有较高的推广价值。
1 引言
Modbus应用层协议由美国Modicon公司(现为施耐德电气旗下品牌)于1979年开发的,用于实现其PLC产品与上位机的通信。由于其简单易用,得到了广大工业自动化仪器仪表企业的采纳与支持,实际上已成为了业界标准,我国标准化委员会已将Modbus协议作为我国工业自动化的行业标准,分别制定了GB/Z19582.1-2004(Modbus应用层协议),GB/Z19582.2-2004(串行链路上的Modbus)和GB/Z19582.3-2004(Modbus-TCP)三个标准。Modbus应用层协议位于OSI模型中的第七层,将它嵌入到不同的低层协议中形成了三种具体的通信方式:Modbus串行链路、Modbus-Plus和Modbus-TCP,三种通信网络上的设备可以通过网关来达到数据交换的目的。这些年来以太网的繁荣壮大使得将Modbus协议嵌入到TCP/IP协议中实现Modbus设备间的通信非常必要,鉴于此,1999年施奈德电气发布了Modbus-TCP协议,使得以太网上的Modbus设备可以通过502端口进行通信。
PLC在工业自动化控制领域中占有很大的比例,一些大型的控制系统中控制点数量达到上万,采用常规的通道测量方法来对PLC通道测量往往需要花费不少的时间,效率低。本文针对施耐德电气的Quantum系列PLC,通过引入Modbus-TCP协议实现普通计算机与PLC通信,用普通计算机取代编程器去进行通道测量试验。操作人员不需要对PLC和计算机的通信很熟悉就能够很快地完成通道检测,提高了工作效率。
2 Modbus通信原理
2.1 Modbus应用层协议
Modbus应用层协议位于ISO/OSI参考模型中的第七层,它是通过请求-响应机制实现不同设备间按客户/服务器方式通信。客户发送请求报文到服务器,服务器接收到报文后进行差错校验,若报文无误则执行操作,并返回响应报文到客户端,若传输出现错误则返回异常响应报文,从而完成一次通信周期。Modbus协议定义了一个与传输层无关报文格式,该报文称之为协议数据元(PDU),协议数据元由占用一个字节的功能码和长252个字节的数据域组成,其组成形式如下图1所示:
图1 Modbus PDU结构
功能码的有效取值范围是1~255,功能码分类分为三类:公用功能码、用户自定义功能码和保留功能码。由客户端发送到服务器的报文中的功能码指示服务器所要执行的操作,一些功能码还带有子功能码,用于执行多步操作。如果服务器接收到的报文正确并执行,由服务器返回的报文中的功能码告诉客户端设备该信息为按照该功能码执行的结果。Modbus网络通信中常用到的是公用功能码,它们在不同公司产品之间的通信中具有统一的定义。表一给出了部分公用功能码的定义。
数据域内存放着Modbus设备能够识别的数据信息。由客户发送到服务器的数据域含有功能码操作的附加信息,在某些请求报文中数据域的长度为零。
表一
由表1中可看出Modbus协议中依据数据属性的区别定义了四种数据类型:离散输入、线圈、输入寄存器和输出寄存器。这四种数据类型的组合构成了Modbus数据模型。它们在不同的设备内存中分配的方式是由生产厂家预先制定的,可以是在同一区域,也可以是有各自的独立区域或其他方式。
[NextPage]
图2 Modbus PDU寻址方式
PDU的寻址方式也在Modbus应用层协议中作出了具体的定义。在ModbusPDU中每一个数据都赋予从0~65535中的一个值作为该数据的地址。而在Modbus数据模型中,每一种数据类型块中的数据单元都定义了一个从1到n(设备容量决定)的值作为其地址。Modbus数据模型要与符合IEC-61131标准的实际设备内存或者其他模型对应起来,这方面的映射关系是由设备生产厂家制定的。图二给出了Modbus寻址模型,设备内存中的四种数据模式的组织方式是由厂家决定的。由图2可知,一个ModbusPDU地址所对应的Modbus数据模型地址为该PDU地址加1。
2.2 Modbus通信实现方式
要实现设备间的通信,需要将Modbus应用层协议嵌入到ISO/OSI参考模型中的低层协议中。现行的通信方式有三种:
(1) 通过串行链路实现的异步数据传输(Modbus-RTU and Modbus-ASCII),又称标准Modbus通信;
(2) 高速令牌环网通信(Modbus-Plus);
(3) 基于TCP/IP的客户/服务器结构通信(Modbus-TCP)。
表2给出这三种通信方式与ISO/OSI参考模型的比较。
在不同的通信方式中都要对ModbusPDU进行封装,组成不同的Modbus帧,这种帧在Modbus协议中有专有的名词称之为应用数据单元(ADU)。在Modbus-RTU和Modbus-Plus通信中采用的是标准应用数据单元,它只是在PDU前面加上了占用一个字节的附加地址和在PDU结束增加了占用两个字节的校验码。在Modbus-TCP/IP网络通信中需要对Modbus应用层协议进行重新封装,该封装是通过在ModbusPDU前加上了Modbus应用层协议帧头来实现。
表2 三种Modbus通信方式与OSI参考模型比较
图3 两种ADU比较
基于串行链路的Modbus通信网络是一种主从式网络,在串行网络中只允许存在一个主节点和多247个从节点,在这种网络下,标准ModbusADU中的附加地址域只包含从节点的地址,可寻址范围是0~247,地址0作为广播模式地址使用,从节点地址的有效取值范围是1~247,并且每个从节点的地址必须是唯一的,主节点不存在具体的地址值。主节点设备将要访问的从节点设备的地址放入到请求帧的地址域中,当该地址的从节点设备作出响应时,将会把从节点设备的地址复制到响应帧的地址域中,主节点设备通过该地址得知是由哪个从节点设备发来的响应。
校验域存放了根据报文内容经由冗余校验算法计算所得到的结果。在基于串行链路的Modbus通信网络中有两种传输方式:RTU和ASCII,这两种传输方式的冗余校验算法是不同的。
[NextPage]
采用RTU通信模式要比ASCII模式在同样波特率下能传输更多信息,在RTU模式底下是以二进制编码方式对传输数据进行编码,报文中每一个字节(8位二进制位)包含了两个十六进制字符,同一报文内的字符必须连续传输。RTU模式字节传输格式由1位起始位,8位数据位,1位奇偶检验位和1位停止位依次组成,共占用11位二进制位。当不使用奇偶检验时,奇偶校验位也作停止位使用,此时共有两位停止位。RTU传输模式下帧的差错校验域内存放的是报文经过循环冗余检验(CRC)算法计算得出的结果。
采用ASCII通信模式时,每一个字节(8位二进制位)用两个ASCII字符表示。由于每个字节都要用两个字符表示,数据域的长度是RTU模式的两倍,显然在该模式下的传输效率要比RTU模式低。该模式的字节传输格式与RTU模式相似,只是数据位置占用7个二进制位。ASCII模式下帧的差错检验算法为纵向冗余校验(LRC)。
Modbus-TCP实现了在TCP/IP以太网上以客户/服务器方式的Modbus报文通信。这种通信模型是将Modbus协议作为应用层协议嵌入到低层TCP/IP协议中构成的。与标准Modbus帧相比,Modbus-TCP帧中的寻址与校验交由TCP/IP协议完成。如图3所示,使用封装的方法将ModbusPDU嵌入到TCP报文中形成Modbus-TCP帧,该帧在PDU之前形成了一个占用7个字节大小的MBAP帧头,帧头可以划分为四部分,如表3所示。
交易标识符用于交易校验,服务器端节收到由客户发来的请求交易标识符并复制到响应中。协议标识符用于系统内多路复用传输,取0值时代表Modbus协议传输。长度域记录了该域后续报文的字节长度(包括设备识别符和数据域),用于服务器识别报文的传输结束。设备标识符用于系统内路由,当需要与通过以太网网关连接的Modbus串行链路或Modbus-Plus通信网络上的设备进行通信时,该标识符域的值由Modbus-TCP客户在请求帧中设置,服务器接收到后,在响应帧中复制该值。
3 Modbus-TCP应用
针对施奈德电气旗下的Quantum系列PLC,为了加快完成这方面的工作,采用自编写的程序实现计算机对PLC的四种数据类型直接操作。硬件方面,Quantum系列PLC有能提供以太网接口的网络模块,通过底板与CPU通信,它作为Modbus-TCP通信的服务器,不需要我们做其他编程工作。PLC为上文所陈述的四种数据类型定义了四个独立的内存区,其中离散输入为1区,线圈为0区,输入寄存器为3区,输出寄存器为4区,寻址方式为区号加上5位的十进制地址,当输入地址不足6位时,系统将自动认为高位数值为内存分区号,其后数值为该区域内的地址编号。由于操作的目的在于检验PLC系统中IO通道的正确性,所需要使用的功能码有:读线圈01、读离散输入02、读保持寄存器03、读输入寄存器04、写多线圈15和写多个寄存器16。
一次完整的Modbus-TCP通信在时间上可以划分为三个步骤:连接的建立、Modbus数据传输和连接的释放。在进行Modbus数据传输之前要建立起一个连接,设备是通过在502端口提供一个监听口(socket)来允许与其它设备建立新连接和进行数据传输。当某一设备需要与远方的服务器进行数据交换时,必须通过自身大于1024的端口与服务器的502端口建立连接。TCP连接建立后,客户端设备便可以发送Modbus请求帧到服务器,服务器接收到请求后作出响应,向连接客户的端口发送响应报文。传输结束时,客户端负责进行释放通信连接的初始化工作。
程序在DOS模式下运行,提供有以下运行参数:
-ip: 即目标服务器的IP地址;
-p: PLC的Modbus通信端口,默认值为502;
-c: 服务器执行功能码的操作对象数量;
-r: 操作的起始地址;
-w: 写操作参数;
-a: 自动操作模式;
-t: 自动操作的时间间隔;
-b: 线圈写操作的布尔值。
4 结束语
通过以太网来实现计算机直接读写PLC数据,使得厂级监控网络能够直接与现场设备通信,监控人员能够在熟悉的计算机画面上对PLC通道进行检测,与依靠人为施加信号来进行检测相比,前者明显地降低了操作人员的工作量,当需要检测的IO点数量越大时,效率越高。本程序只是Modbus与TCP/IP协议结合的一个简单应用,以太网的实时性、稳定性和抗干扰性已得到很大的发展,但要把以太网真正应用到实际的控制中还有很多技术难题,这还要走很长一段路。以太网进入自动控制领域已是必然趋势,它将使控制变得更加简单和清楚。