6ES7212-1BB23-0XB8现货速发
6ES7212-1BB23-0XB8现货速发
引言
PLC作为一种高效、灵活、可靠的控制器,已经广泛地应用在包括数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等工业控制领域。在联网通信方面,PLC与上位计算机设备一起,可以组成“集中管理、分散控制”的分布式工业控制系统。在这种控制系统中,PLC与上位机的通信对系统整体性能有着较大的影响。面对众多厂家不同类型的PLC,它们在功能编程上没有统一的标准而且在通信协议上也是千差万别,选择一种即能满足通信要求又经济实用的通信协议是非常关键的。本文以S7-200PLC为对象,详细研究了S7-200PLC在自由端口模式下与PC之间的通信方法,并采用.net环境下的C#语言编写通信程序实现了计算机与PLC之间的通信。这种通信方式硬件投入低,通信协议灵活,可以在多个工业控制领域得到广泛的应用。
1 S7-200 PLC与上位机的通信方式
S7-200 系列PLC与上位机进行通信主要有以下几种方式:(1)通过S7-200 PLC的OPC服务器(pc access)作为上位机的OPC服务器, 这种方式只须在OPC服务器中配置相应的测点数据,编程简单,但通信速率不高,用户不能自由修改通信协议;(2)利用触摸屏,这种方式需要根据触摸屏兼容的通信协议进行选择,通信可靠性高, 但灵活性差,触摸屏界面编程功能也不够强大;(3)利用通用编程软件实现,这种方法虽然系统开发工作量大,对技术人员的水平和经验都要求较高,但编程灵活,可以实现比较复杂的功能。本文采用了第三种通信方式,在开发通信软件时考虑了S7-200 PLC所特有的一种通信方式—自由口通信模式。在自由口模式下用户可自定义协议,利用串口和PLC的通信口来收发数据,通信功能完全由用户程序控制,通信任务和信息定义均需由用户编程实现,通过调用子程序来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。
2 自由口通讯工作模式的定义
在中小规模系统,通信速率要求不是特别高的情况下,S7-200 PLC自带的编程口可以作为通信口使用。S7-200 PLC编程软件与PLC进行通信所利用的PPI协议实质也是一种RS-485通信,它可在多种模式下工作,其中自由口通信功能是S7-200 PLC的一个独特的功能。在自由口通信方式下,S7-200 PLC可以与任何协议公开的设备、控制器进行通信,高波特率可达38.4kbit/s。一般上位机串行口符合RS-232C标准协议,为了与PLC的RS-485通信则必须进行协议转换。在PLC编程方面,自由口模式下的通讯协议主要就是自由口通信工作模式控制字的定义以及发送和接受数据指令的格式约定及其参数设置等。
2.2 接收指令(RCV)
RCV(接收指令)从S7-200 PLC的通讯口接收一个或多个数据字节。接收的数据字节保存在接收数据缓冲区中。接收指令完成后,会产生一个中断事件(对Port0为中断事件23,对Port1为中断事件24)。启动接收指令后,CPU的通讯控制器就处于接收状态。使用接收指令时需要设置消息起始和结束的判断条件,通讯控制器用这些条件来判断消息的开始和结束。当判断消息结束时接收状态终止,否则通讯口会一直处在接收状态。由于S7-200 PLC的自由口通讯是建立在RS-485半双工通讯的基础上,接收和发送不能同时进行,接收指令不结束,就不能执行发送指令。对几个重要的特殊存储区设置举例如下:
MOVB 16#EC, SMB87(允许接受,检测起始字符和结束字符,超时检测)
MOVB 104, SMB88(发送报文起始字符为h)
MOVB 72, SMB99(结束字符为H)
MOVB +1000, SMB92(接受超时时间为1s)
MOVB 35, SMB94(接受大字符数为35)
2.3 发送指令(XMT)
XMT 发送指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,发送命令格式为 XMT TABLE,PORT, 其中TABLE为数据存储区地址,PORT指定PLC要发送数据的端口。一次多发送255个字节。XMT 发送指令完成后,会产生一个中断事件(Port0为中断事件9,Port1为中断事件26)也可以监视发送完成状态位SM4.5和SM4.6的变化来产生XMT中断。
3 S7-200 PLC 通信程序设计
3.1 通信程序流程
本程序中S7-200 CPU从通讯端口0接收字符串,使用RCV指令和接受完成中断接受数据,以自定义协议来实现计算机与S7-200PLC之间的数据通信时,为了避免通信中的各方争用通信线路,一般采用主从方式,即计算机作为主机,向作为从站的S7-200 PLC端口0发送规定格式的报文。
当S7-200 PLC接收到指令后进行相关的数据校验, 这里采用BBC校验方式,即将每一帧的个字节(不包括起始字符)到该帧中正文校验码之前的所有字节作异或运算(本例中是从VB101到VB130),并将校验码作为报文一部分发送到计算机。在PLC接收端也要对接收缓冲区的数据进行BBC校验,然后与指令中的校验码比较,如果校验码相等则置位M0.0,PLC执行命令并将所接收到的数据反馈给计算机;如果校验码不相等, 则置位M0.1并返回带有校验码错误的反馈信息,通信流程图如图1所示。
图 1 PLC通信流程图
3.2 通信帧格式约定
计算机每次发送一个33字节的指令来实现一次读写操作。每条指令都包括起始字符、结束字符、目标站地址、目标寄存器地址、要读写的字节数、要写入的数据和校验码。S7-200 PLC接收到计算机发送来的数据,先存放在PLC的接收缓冲区,设定以VB100开始。自定义的接收缓冲区的数据设计格式见表1
表 1 PLC接收数据缓冲区
VB100 接收到的字节数
VB101 起始字符
VB102 指令类型(读/写)
VB103 VB104 目标站地址
VB105~VB112 目标寄存器地址
VB113 VB114 读写字节数
VB115~VB130 要写入的数据
VB131 VB132 校验码
VB133 结束字符
为避免在通信中由于指令中的起始字符或者结束字符与传输的数据有重复而导致PLC的误动作,这里采用文本传送二进制数据,即通过以16进制的ASCII码的格式来描述数据,让每个二进制的字节都表示成一对ASCII编码的16进制字符。比如48H可表示为34H、38H两个字节。指令类型自定义为05H代表读操作,06H代表写操作。目标寄存器地址采用四个字节表示,前两个字节表示寄存器类型,后两个表示寄存器号,例如:VB101的地址可表示为08 00 00 65,其中“08 00”表示V寄存器区,“00 65”表示寄存器号101。目标寄存器地址表示方法如表2所示:
PLC接收上位机的指令后会返回一个21字节的反馈信息。自定义的发送缓冲区的格式如表3所示:
表 3 PLC发送缓冲区格式
VB153 VB154 VB155 VB156~VB171 VB172 VB173 VB174
发送字符数 起始字符 状态信息 发送数据区 校验码 结束字符
其中VB155状态信息的格式定义为:01H代表读入正确,02H代表写入正确,03H代表校验码错误,04H代表指令不合法。
3.3 主要程序设计
本系统PLC程序设计采用模块化设计,主要包括主程序、初始化子程序、读子程序、写子程序、校验子程序、接收完成中断程序和发送完成中断程序。
主程序负责判断读写条件和调用各个子程序,具体包括判断PLC运行模式;调用初始化子程序;判断本机站号、指令类型和校验码等是否符合读写程序;调用读、写子程序;接收数据等。
在初始化子程序中主要设置一些通信参数和RCV接收参数并开启接收完成中断0和发送完成中断1。在读写子程序中根据接收到的指令信息读取目标寄存器数据或者把数据写入目标寄存器中,并利用XMT发送反馈信息到计算机。读写程序如下:
读子程序:
LD SM0.0
R SM87.7, 1 (禁止接收)
R M0.0 (复位校验位)
RCV VB100, 0
MOVB 103, VB154 (送返回信息起始字符为g)
MOVB 1, VB155 (状态信息读取正确)
HTA *VD135,VB156,16(将要读取的数据做16进制转ASCII码转换)
MOVB 71, VB174 (结束字符为G)
MOVB 21,VB153 (发送字节数为21个字节)
…… (校验发送数据)
LD SM4.5(端口0发送空闲时置1)
XMT VB153, 0
写子程序与读程序类似,只是要对写入的数据做ASCII码转换:
MOVD &VB115, VD145(装入要写的数据源的地址指针)
ATH *VD145, *VD135, VB139(对要写入的数据做ASCII码转16进制转换)
……
XMT VB153, 0
4 上位机C#编程
在bbbbbbS环境下开发与PLC的通信软件,利用 .net环境下的通信组件SerialPort [3] 实现通信,并用 Visual C# 编写软件程序。该通信组件提供了使用RS232开发串行通信软件的细则,组件主要属性如表4所示:
.net环境下的SerialPort组件没有像传统的Visual Basic 6.0中的MSComm.PortOpen = True/False属性,所以打开关闭串口相应的是调用类的Open()和Close()方法。SerialPort组件读取数据的许多方法是同步阻塞调用,应尽量避免在主线程中调用,可以使用异步处理或线程间处理调用这些读取数据的方法,采用这种方式可以显著提高系统的工作性能,这也是.net环境与Visual Basic 6.0编程环境的不同之处。
SerialPort组件的串口属性要设置成与PLC串口参数相同的数值,例19200bit/s,无检验,1位停止位,8个数据位。触发SerialPort组件接收数据的事件是DataReceived事件,设置ReceivedBytesThreshold为1表示立即接收。由于DataReceived事件在辅线程被引发,而收到完整的数据要在主线程窗体上显示,所以要用到跨线程处理,在C#中可采用控件异步委托BeginInvoke的方法窗体显示收到的数据。SerialPort接收主要程序如下:
private void serialPort1_DataReceived(bbbbbb sender, SerialDataReceivedEventArgs e)
{
int int_Len = serialPort1.BytesToRead;//接收字节数
byte[] bytes2 = new byte[int_Len]; //接收字节
serialPort1.Read(bytes2, 0, int_Len); //读入串口数据
bbbbbb st1 =ToHexbbbbbb(bytes2); //转换数据为16进制显示
MyInvoke iv1 = new MyInvoke(Display); //异步委托调用显示数据
ReceiveBox1.BeginInvoke(iv1, new bbbbbb[] { st1 });
}
编写的通信界面如图2所示:
图 2 PLC串口通信界面
在这个通信界面下可以自由设置串口参数,当设置好通信参数、命令类型和寄存器参数后,即可发送指令数据,命令类型中05代表读,06代表写。操作界面分为手动发送和定时循环发送,利用自动定时发送可实时的读取PLC中的参数,也可利用手动发送把数据写入PLC或从PLC中读出。发送流程图如下:
图 3 计算机发送流程图
5 结束语
本文采用自由口通信方式实现了计算机和PLC的通讯,上位机采用C#开发通信软件。由于自由端口模式通信用户投资较低,编程时可以自定义通信协议并能灵活的与各种通信设备通信,且PLC程序具有模块化、结构化的特点,各种子程序可移植性好,因此在各种分布式控制系统和需要计算机处理数据的场合中会得到很好的运用和发挥。
工业废水处理系统:
利港电厂工业废水处理系统用来处理一、二期4×350MW发电机组的工业废水,废水包括补给水系统的再生废水、化验室排水、锅内取样废水、锅炉清洗废水、锅炉排污水、空预器冲洗水,煤场冲洗废水等。各就地工业废水池通过废水输送泵将工业废水送至工业废水处理站#1-6存放池中,工业废水站废水不对外排放,经中和处理后的酸碱废水和锅炉区域的低浊度碱性废水直接利用3台工业废水处理给泵送至#2灰浆池,作为冲灰补充水。
工业废水分为二类:
类废水包括再生废水和化验室排水,贮存在#5存放池中,处理工艺流程图为:
第二类工业废水包括锅内取样废水、锅炉清洗废水、锅炉排污水、空预器冲洗水,煤场废水等,贮存在#1-4和#6存放池中,处理工艺流程图为:
原控制系统和存在缺点
利港电厂工业废水处理原控制系统,控制功能的实现全由继电器搭建而成,采用模拟屏显示系统流程及门和泵的运行状态,废水系统液位、流量是以二次显示表和记录仪方式实现,模拟量的控制通过单独的调节器实现,无法实现报表自动生成和处理水量统计功能。该套系统使用十五年时间,老化严重,已经影响生产,主要存在以下缺点:
1、控制系统技术落后,故障率高;
2、电子产品产品老化严重,维修和更换费用都比较高;
3、继电器硬接线回路,技术改进困难,成本也高;
4、无法满足系统无人值守和自动统计的要求。
5、原系统无趋势分析、无报警记忆功能,维护系统、分析和处理事故存在困难.
6、工业废水系统无法实现实时数据采集和信号进SIS信息管理系统功能。
改造设计思想:
1、拆除工业废水原模拟盘控制柜,拆除原有按钮控制板,拆除原有的单回路调节器设备。
2、按要求重新配置、组态一套工业废水控制系统,新系统具备无人职守的能力。
3、用上位机平台控制方式,在CRT上直接进行对系统运行的监视和操作系统设备,上位机的配置,采用价比较高的通用型PC机。
4、采用性能优越的IFIX监控软件,通过操作员站对工业废水处理系统和进行监视控制,即通过LCD画面和键盘对整个工艺系统进行监视和控制,控制室不再设常规控制仪表盘。
5、工业废水控制系统更改后,将该系统接进水网,主干网采用以太网络,PLC和两台操作员站均接到以太网上构成一个以太网,易于组态、易于使用、易于扩展。
6、控制系统不仅与下层控制设备有良好的接口,而且具有上层管理厂级实时监控(SIS)系统的接口,同时具有可扩展性。
设计方案:
本控制系统PLC设计选用GE公司PAC 7系列PLC,采用单CPU配置系统结合多台上位计算机操作员站的控制方式,控制系统不采用就地控制箱上装配开关和按钮的方式,在操作控制室通过上位计算机系统对整个废水处理流程进行集中运行监示、报警与控制。废水处理系统在自动运行方式时,具备无人职守的能力及条件,设计了多种控制模式,可在上位机上选择运行。
1、PH值控制程序,再生废水处理后,PH值在6-9之间送至#3存放池以便再利用,PH值〈6或
〉9时返回#5池重新处理。
2、时间控制程序,本系统严格按照时序,顺序工作,允许在工作过程中进行手动、备用和自动方式的切换。
3、分组工作程序,由于多台废水存放池对应多台处理给泵和气泵,采用了分组运行的方法,根据实际情况进行控制参数据选择,这样既方便对各个对象的控制,又不影响设备的检修。
4、工业废水处理控制系统配置:一台控制电源分配柜,控制系统中各个电压等级的电源转换及各个控制设备的配电;2台PLC柜,内装一套废水处理系统PLC装置、必须的PLC、网络保护装置、继电器(日本idec 24VDC中间继电器)、4-20mA模拟量隔离器(日本ASAHI)等;一台LCD操作员站。
改造后系统功能比较:
1、监视功能及特点
通过各种可选择的画面(如运行画面、事件管理画面、报警画面等)对系统进行监视控制,实现生产过程的自动化。iFIX监控软件具有与下位机系统通讯的能力,实时监控现场设备的工作状态,显示生产过和中的工作曲线,具有远程控制能力,向下位机采集数据,对历史数据进行存储、查询、显示、打印等。监控系统有如下特点:
(1) 界面显示:具有全中文显示,界面友好,操作方便,系统流程画面采用主菜单的形式,在每幅画面下都可以通过按钮切换。在中心控制室对能全系统被控设备进行实理控制。
(2) 实时画面显示功能:用图型实时地的显示各现场的状态参数。用模拟仪表、趋势曲线显示参数的实时变化情况。根据阀门的开闭及水泵的启停状态。
(3) 参数修改画面和故障诊断画面等各种监视画面,便于生产人员能够快速、清晰地了解整个系统的生产情况。
(4) 安全功能:设定不同权限的口令,限定不同人员进入系统的权限,计算机启动后直接进入运行画面。
(5) 数据管理:数据库存储生产数据和操作记录,供统计分析使用。便于对历史数据的的记录和事件分析。
2、系统实现的功能
(1)所有设备操作均以窗口的方式实现,采用弹出式窗口操作的有:阀门、马达(泵或风机)的启停或/和调节,窗口的上方显示该设备的名称及EAM编码,下面该设备的操作按钮和检修挂牌按钮。操作窗口弹出后,可以方便地在窗口内对设备的参数进行修改,或改变设备的运行状态,泵和阀门采用不同的颜色表示设备的不同状态,。
(2)自动运行方式说明
工业废水系统在自动运行方式状态下,跟据水池的液位实现自动运行和泵的自动加药处理,从而进一步实现无人值守。当就地设备或系统出现异常,对自动控制造成无法正常运行时,例如阀门的开启和信号反馈有误仪表故障等,通过修改分组工作程序重亲新保证系统的正常自动运行。
(3)PID调节
酸碱加药部分的PH调节采用PID方式进行调节,PID调节是指调节器根据被调参数的给定值(SP)和过程值(PV)之间的偏差,通过比例P、积分I、微分D运算,改变调节器输出使过程值跟踪给定值从而达到无差调节的目的。PID调节有手动和自动两种调节方式:自动时PLC根据SP和PV间的偏差,按照PID算法自动改变控制输出,直到过程值等于给定值;手动时通过运行人员人为改变控制输出达到调节目的。酸碱加药部分调节中,自动时变频器的频率由控制系统计算值决定;自动解除后,变频器频率有操作员直接输出值。画面上有变频泵出力大小的数字显示,点击显示数字会弹出一画面,上面会显示泵出力大小的输出值和反馈值,其中输出值在非自动状态下操作员可以设定和改变。
3、方便维护
采用Proficy(TM) Machine Edition V5.50版本的专用编程软件,该软件提供了简单友好的用户界面,可重复使用的程序、强劲的搜索功能、自由格式的图形编辑器、完善的在线帮助。很方便的进行程序编写、软件调试、系统维护完全依照bbbbbbs环境的操作习惯设计,易学易用,可以极有效率之方式来操作。采用项目(project)观念,以可视化之方法将程序的开发内容以阶层化的方式加以呈现,令相关之工作内容一目了然,不论是程序的开发或维护皆能以极为直觉的方式进行。多样化的联机方式,提供直接联机、调制解调器联机及因特网联机等,并可自行将不同的联机设定内容,提供联机(on-line)的程序编辑功能,编辑完后可立即执行不必重新下载程序,可大幅缩短程序的开发与修改时间。 提供多窗口的阶梯程序画面,可将不同区段之程序同时呈现以便加以对照、复制与编辑 。 提供弹性之阶梯程序编辑功能可执行程序网络的插入、复制、贴上、删除等高效能操作,以加速程序之输入。 多窗口的阶梯程序高亮度显示画面,除将各开关组件闭合状态以红色直接在组件上显示外各应用指令内的缓存器其现在值亦直接在窗口内一起显示此对程序测试有极大之帮助,在窗口内亦可直接点选开关组件并对其加以抑能、致能或强制设定,被抑能之接点与线圈在显示上有别于正常之组件,以助于组件状况之掌握。
4、实现厂级管理的联网
通过发电厂厂级监控信息系统(SIS)是处于火电厂控制系统(DCS等)与管理信息系统(MIS)之间的,主要为火电厂全厂实时生产过程综合优化服务的,对生产过程进行实时管理和监控的信息系统。
结束语
通过工业废水PLC控制系统更新改造,提高系统控制水平,系统运行更稳定性,可靠性,实现过程自动化和无人值守,自投用以来,节省了大量的人力,具有较好的经济效益。