西门子6ES7235-0KD22-0XA8产品型号
西门子6ES7235-0KD22-0XA8产品型号
1 引言
在工业控制系统中,PLC作为一种稳定可靠的控制器已经得到了广泛的应用。但是由于中小型PLC的人机接口功能不很完善,不能提供给用户一个友好的交互界面,因此妨碍了对现场运行过程的跟踪与监控。
PLC实际工作中,通常人们采用4种装置为PLC配置人机界面:编程终端、显示终端、工作站及个人计算机。编程终端主要用于编程与调试,其监控功能相对较弱。显示终端的功能比较单一,主要用作现场显示。工作站系统很受用户欢迎,它功能全面、使用简单,但由于要配置组态软件,因而价格比较昂贵。个人计算机可配备多种语言,提供优良的软件平台,开发各种应用系统,特别是动态画面显示等,与PLC相结合组成一套PC-PLC监控管理系统,能够充分发挥它们各自的优点。但是在该系统中,关键的问题就是通信,用户对此须做较多的开发工作。
本文详细阐述了PC与PLC互连通信的一般方法,并以永宏公司的FATEK-FBS PLC为对象,以实际四层电梯模型监控系统为例,介绍了利用大家都熟悉的编程语言Visual Basic 和Step7,实现PLC与上位计算机实时通信的通信过程。
2 通信方式
面对众多生产厂家的各种类型PLC,它们各有优缺点,能够满足用户的各种需求,但在形态、组成、功 能、编程等方面各不相同,没有一个统一的标准,各厂家制订的通信协议也千差万别。目前,人们主要采用以下三种方式实现PLC与PC的互联通信:
(1) 通过使用PLC开发商提供的系统协议和网络适配器,来实现PLC与PC机的互联通信。但是由于其通信协议是不公开的,因此互联通信必须使用PLC开发商提供的上位机组态软件,并采用支持相应协议的外设。可以说这种方式是PLC开发商为自己的产品量身定作的,因此难以满足不同用户的需求。
(2) 使用目前通用的上位机组态软件,如组态王、InTouch、WinCC、力控等,来实现PLC与PC机的互连通信。组态软件以其功能强大、界面友好、开发简洁等优点目前在PC监控领域已经得到了广泛的应用,但是一般价格比较昂贵。组态软件本身并不具备直接访问PLC寄存器或其它智能仪表的能力,必须借助I/O驱动程序来实现。也就是说,I/O驱动程序是组态软件与PLC或其它智能仪表等设备交互信息的桥梁,负责从设备采集实时数据并将操作命令下达给设备,它的可靠性将直接影响组态软件的性能。但是在大多数情况下,I/O驱动程序是与设备相关的,即针对某种PLC的驱动程序不能驱动其它种类的PLC,因此组态软件的灵活性也受到了一定的限制。
(3) 利用PLC厂商所提供的标准通信端口和由用户自定义的自由口通信方式来实现PLC与PC机的互连通信。这种方式由用户定义通信协议,不需要增加投资,灵活性好,特别适合于小规模的控制系统。
通过上述分析不难得出,掌握如何利用PLC厂商提供的标准通信端口和自由口通信方式以及大家所熟悉的编程语言来实现PC与PLC之间的实时通信是非常必要的。
3 FATEK-FBS PLC通信方式及原理
FATEK-FBS PLC内部集成的PPI接口为用户提供了强大的通信功能,可在多种模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通信方式具有特色,通信协议可完全由梯形图程序控制,通过它可以实现PLC与任何具有通信能力的设备进行互连,因而在本系统中选用自由口通信方式。
目前PLC与PC机的链接通信有两种方式,一种是PC机始终处于主导地位,数据的传送都由PC机定时发出命令,另外一种是PLC始终具有优先权。在本电梯模型监控系统中所有的控制信号均为开关量信号,考虑到上位PC机仅实时显示电梯的运行状态,不需向PLC发送控制指令,采用第二种通信方式。利用PLC循环扫描的特点,设备状态一旦改变,PLC立即检测到,并将反映系统状态变化的数据存入指定的数据缓冲区,通过XMT发送指令,将数据通过COM口发至上位机。每个系统的状态对应于数据缓冲区中的一个指定字节,所存储数据均为16进制数据,为保证通信过程的可靠性,上位机对所接受到的数据进行首尾字符校验,如果校验成功,则说明接收到的首末字节之间的数据是正确的,从而进行处理,否则,放弃这批数据,要求对方重发。
[:page:]
4 应用实例与程序设计
(1) 系统构成
FATEK-FBS PLC内部集成的PPI接口物理特性为RS485,而上位机的标准串口为RS232,为了实现两者的通信必须进行协议转换,永宏公司提供的PC/PPI电缆带有RS232/RS485电平转换器,因此再不增加任何硬件的情况下,可以方便的实现二者的互联和协议转换。
作为控制器的FATEK-FBS PLC利用电梯模型自带的电源线实现与四层电梯模型的互连,该电梯模型为教学试验装置,具备一般电梯的基本功能。
(2) PLC部分编程
① 自由端口的初始化
在自由口通信模式下,通过设置特殊存储器SMB30(端口0),来为自由端口通信选择波特率、奇偶校验和数据位。这些设定必须与PC机设定值相一致。其格式如下:
SMB30
pp为奇偶校验选择,d为数据位选择,bbb为波特率选择。
 00为无校验,0为每个字符8位,000为38 400
baud,001为19 200baud;
 01为偶校验,1为每个字符7位,010为9 600 baud,011为4 800baud;
 10为无校验,100为2 400baud,101为1 200baud;
 11为奇校验,110为600baud,111为300baud;
mm为协议选择:00为PPI协议,01为自由口协议,10为PPI/主站模式,11默认为PPI/从站模式。
② FATEK-FBS PLC实时向上位PC机传送数据
在对电梯模型控制中,所有的控制信号均为开关量,基于这一特点,系统状态的改变即为这些开关量信号状态的改变,因此可通过跟踪这些开关量信号的上升沿信号、下降沿信号的到来,做为系统状态改变的依据。据此在本系统中,通过对同一个开关量信号的上升沿、下降沿分别定义不同的16进制数的方式,来代表信号的产生与结束,当检测到这些信号产生时,便将这些数据存入指定的数据缓冲区中的字节中,并通过COM口发至上位PC机,同时产生发送完成中断,PLC延迟等待接收来自上位机的应答信号,通过分析存储在接收字符缓冲器SMB2中的数据,判断是否需要重新发送。下位机程序如图1所示。
图1 下位机程序流程图
[:page:]
(3) 上位机部分编程
基于VB处理监控界面图形、数据报表及通信的方便快捷,本课题上位机的编程环境采用VB来实现。VB不仅提供了MSCOMM串行通信控件,而且也为这个控件提供了标准的事件处理函数,并通过设置它的一些属性对通信接口进行初始化,从而很容易的实现了串行通信的问题。
下面介绍一下有关此控件的属性:
Commport,设置通信连接端口。程序必须指定要使用的串行端口的号码,bbbbbbs使用所设置的通信端口与外界进行通信。
Settings,设置初始化参数。其格式为“BBBB,P,D,S”,其中BBBB为连接速度,P为奇偶校验方式,D为数据位数,S为停止位数。默认值是“9 600,n,8,1”。
PortOpen,设置通信连接端口的状态。使用串行端口之前必须先将要使用的串行端口打开。
bbbbb,返回并删除接收缓冲区中的数据流。
bbbbbLen,设置从串行端口读入的字符串长度。
Rthreshold,设置引发接收事件的字符数。
bbbbbMode,设置接收数据数据形式。
OnComm事件,用来处理所有与通信相关的事件。使用事件程序的好处是不需要一直让程序处于检测的状态下,只要事先将程序代码写好,一有事件发生,就会直接执行相对应的程序代码。可见这种事件驱动的方式也为实现实时通信提供了必要的条件。上位机程序如图3所示。PC机根据接收到的信息很容易的实现对每个开关量的状态进行识别,从而控制监控界面的实时显示。
5 结语
以上是基于FATEK-FBS PLC自由口通信方式实现与上位机PC实时通信
0 引 言
随着电子技术的发展,可编程序控制器(PLC)已经由原来简单的逻辑量控制,逐步具有了计算机控制系统的功能。在现代工业控制中,PLC占有了很重要的地位,它可以和计算机一起组成控制功能完善的控制系统。在许多行业的工业控制系统中,温度控制都是要解决的问题之一。如塑料挤出机大都采用简单的温控仪表和温控电路进行控制,存在控制精度低、超调量大等缺点,很难生产出高质量的塑料制品。在一些热处理行业都存在类似的问题。为此,设计了较为通用的温度控制系统,具体系统参数或部分器件可根据各行业的要求不同来进行调整。系统采用罗克韦尔SLC500系列PLC,通过PLC串口通信与计算机相连接,界面友好、运行稳定。
1 系统构成
基于PLC的温度控制系统一般有两种设计方案,一种是PLC扩展专用热电阻或热电偶温度模块构成;另一种是PLC扩展通用A/D转换模块来构成。
1.1 扩展热电阻/热电偶模块
在SLC500控制器扩展模块中,有集温度采集和数据处理于一身的专用智能温度模块——热电阻/电阻信号输入模块(1746-NR4)。在此模块中温度模拟量产生对应的16位A/D数字值,其对热电阻变送的温度信号的分辨率约为1/8度,控制器在数值处理中可以直接使用模块的转换值,无需在硬件级电路上作其他处理。热电阻温度模块的使用十分方便,只需要将热电阻接到模块的接线端子上,不需要任何外部变送器或外围电路,温度信号由热电阻采集,变换为电信号后,直接送人温度模块中。热电偶/毫伏输入模块(1746-NT4)的功能与热电阻/电阻信号输入模块(1746-NR4)类似。系统如图1所示。
图1 扩展温度模块的温控系统
1.2 扩展通用A/D模块
在PLC温度控制系统中,可以用通用模拟量输入输出混合模块构成温度采集和处理系统。通用A/D转换模块不具有温度数据处理功能,因此温度传感器采集到的温度信号要经过外围电路的转换、放大、滤波、冷端补偿和线性化处理后,才能被A/D转换器识别并转换为相应的数字信号。SLC500系列PLC常用的模拟量输入输出混合模块有——2路差分输入/2路电压输出模块(1746-NIO4V),其A/D转换为16位。由A/D转换模块构建的温控系统不但需要外加外围电路,而且其软件和硬件的设计也比较复杂。系统如图2所示。
图2 通用A/D转换模块温控系统
2 输入输出控制
比较而言用温度模块1746-NR4构建的PLC温控系统具有较好的控制效果。SLC500控制器的输入通道中一个热电阻模块多可以接4个温度热电阻温度传感器。输出通道为模拟量输出模块(1746NIO4V),其输出信号是电压信号,可以通过电压调整器控制电源的开度(即一周期内的导通比率),从而控制电源的输出功率。
在被控对象要求较高的控温精度时,SLC500控制器可以采用PLC自身具有的PID指令进行PID控制算法的研究。SLC500系列PLC的PID指令使用下列算法:
输出=Kc[(E)+1/Ti∫(E)dt+Td•D(PV)/Dt] +bias
程序设计时,输入PID指令后,要输入控制块,过程变量和控制变量的地址。对于SLC500 PID指令,过程变量(PV)和控制变量(CV)两者的量度范围为0到16383。在使用工程单位输入时,必须首先把用户的模拟量范围整定在0-16383数字量度范围之内,为了实现这个目的,需要在PID指令之前使用数值整定指令(SCP指令)进行整定。整定原理如图3。
图3 数值整定原理
整定了PID指令的模拟量I/O范围,用户就能输入适用的小和大的工程单位。过程变量,偏差,设定点和死区将在PID数据监视屏上以工程单位显示。图4为PID指令的设置界面,表1为PID指令各参数的说明。
图4 PID模块在线参数设定与标志位
表1 PID模块参数说明
一般温控系统的控制算法可以采用分段式PID控制,即在系统工作的大多数时间内,为PID控制,其参数由10%电源开度下的温度飞升曲线测得。在温度响应曲线的由初态向设定点的上升段过程中,大致采用三段控制。首先置电源为满开度,以大的功输出克服热惯性;接下来转入PID控制;接近设定点时置电源开度为0,提供一个保温阶段,以适应温度的滞后温升。基于以上要求,PID指令各参数可设置如表2所示。
表2 PID模块参数设定
温控系统中热电阻模拟量输入模块的电压信号范围一般是0~4124,SCP指令把它整定为0~16383的工程单位,将其值放入PV(过程变量)的内存地址N7∶38中,把控制输出值放入N7∶39当中。后用MOV指令把N7∶39中的过程变量传递到1746NIO4V模拟量输出模块中。控制效果如下:(1)SP-PV≥50时,输出值为大值32767,使电压调节器开度大,即给加热器大电压供电,使被测对象温度快速上升。(2)SP-PV>-30和SP-PV<50时,输出为PID控制输出,此范围为PID参数调节的范围。(3)SP-PV<-30时,输出值为小值0,电压调节器开度为零,即停止加热。
3 显示扩展
PLC控制系统显示界面比较单调,一般是通过观察控制柜上的指示灯或PLC的LED灯来了解控制器状态,但对于温控系统这样的显示是不够的,需要采用数码管显示或PC显示。
采用数码管显示时,可以选用ZLG7289A芯片,它与控制器采用3线串行接口,只需要占用SLC500的3个输出点,可以驱动8个LED数码显示管,同过级联可以扩展数码显示管的数量,实现多段实时温度显示。SLC500与ZLG7289A的连接如图5所示。
图5 ZLG7289A与SLC500及显示器的接口
图5中CS为片选输入端,此脚为低电平时,可向芯片发送指令;CLK是时钟输入端;DATA是串行数据输入端,串行数据在时钟CLK的上升沿有效。8个段驱动信号SEG接每个显示器的段,8个位驱动信号DIG0~DIG7分别接显示器的共阴极公共地。
SLC500有RS232通信口,可以通过专用电缆与PC机相连。通过Rsview32软件的组态,PC机可以动态显示PLC传送的温度采集数据,还可以通过联网对多台PLC进行网络监控。
4 PLC与PC通信设计
4.1 PLC数据包的信息格式
SLC500与上位机进行数据交换是以二进制字节数据进行,它包含四种主要命:读命令,代码:01H;响应读命令,代码:41H;写命令,代码:08H;响应写命令,代码:48H。故PLC数据包的信息格式如图6所示:
图6 PLC数据包的信息格式
DST:一个字节,信息接收方的节点号或文件号;
SRC:一个字节,信息发出方的节点号;
CMD:一个字节,命令类型如01H,41H,08H或48H;
STS:一个字节,通信状态,表示通信有无错误或错误类型,0为无错误;
TNS:二个字节,信息包的业务批号,可作为本信息的识别编号;
Addata:地址/字节数/数据,具体内容由不同的命令类型决定。
PLC与PC机的数据通信采用自由端口通信模式,参数设置成为波特率9600 bps,每个字符8位数据,无奇偶校验。采用主从式通信协议,PC机为主机,只有PC机有权主动发送报文,PLC则采用报文接受数据。用RSLogix500软件对SLC500的串口进行如下设置:
1)set the module for full duplex BSC(DF1 full duplex)
2)set the module for bbbbbded response
3)set detect for automatic
4)disable duplicate packet detect
5)set the baud rate for 9600.
4.2 PC机程序
PC机采用VB编程,主要有监控界面、当前温度显示、动态温度曲线显示、温度数据库管理、参数设置以及与PLC通信等方面的设计。通信参数设置程序如下:
With MSComm 1 // 通信参数设置
CommPort=1 // 通信口COM1
Settings=“9600,年n,8,1”// 波特率9600 bps,无奇偶校验,8位数据,1位停止
bbbbbLen=2 //一次读取2个字节
bbbbbMode=comLnputModeBinary // 二进制数据格式
PortOpen=Ture // 打开通信端口
End With
PC机采用中断方式接受SLC500传来的实时温度。即串口收到数据,VB通信控件会触发OnComm事件,在OnComm事件程序中接受数据并处理。一个温度数据为16位两个字节,SLC500传送温度数据时,按报文传送格式高低字节正好相反,因此,VB程序要对接收的数据进行处理,并按照SLC500温度采集的精度(1/8度)转换成温度值用于显示。