6ES7341-1AH02-0AE0参数详细
引言:在工业现场,计算机与设备之间的通信,一般都采用串行通信方式,通过计算机的串口,将串口线与设备的通讯口连接。根据现场控制要求,计算机与设备之间会有一定的距离。鉴于RS232接口标准的通信距离短,速率低的缺点,更多项目会采用RS485标准。RS485是从RS232标准中改进而来的,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,信号的“正”、“负”逻辑是通过两线之间电平的正负来确定的。在接线时,线的两端的接收器和发送器对应引脚相连。
软件简介
根据现场控制的要求,计算机要对在工业现场采集的参数实时显示,相应的发布控制指令完成对整个过程的控制。世纪星组态软件是在PC机上开发的智能人机接口软件,以Microsoft bbbbbb 98/NT/XP中文平台作为其操作系统。该软件充分利用了bbbbbbs图形功能完备、界面一致性好的特点,比以往的使用专用机开发的工业控制系统更有通用性,并且可以利用PC机丰富的软件资源进行二次开发。
硬件驱动设备
通信软件的核心是串口的通信驱动程序,利用VC++或VB等编程软件都可以实现串口通讯的底层协议的编制。在VC++中一般用如下方法可以进行串口通讯。一种是利用Microsoft公司提供的ActiveX控件Microsoft Communications Control。另一种是直接用VC++访问串口,直接利用API对串口操作,此方法较复杂,但有很大的灵活性。为了缩短软件的开发周期,可以利用第三方提供的关于串口通信的动态连接库(DLL)。将其连接或添加到自己要开发的程序中,就可以直接利用里面已编制好的函数来完成串口编程的操作;也可以选用组态软件的通讯协议以完成控制信号的传递。
硬件驱动是上位机远程控制的核心环节,要实现计算机与设备的串口通信,首先要打开计算机的串口并对其属性进行设置(即波特率、数据位、奇偶校验、停止位等参数的设置),此串口属性的设定要与设备的串口属性一致,否则将无法建立通信联系。其次,建立数据传输的格式时,不同的下位硬件的数据格式各不相同。实现通讯的两设备之间的数据传输格式必须严格一致,否则将不能对传入的数据进行识别,从而无法实现通讯。
软件设置
应用世纪星组态软件可以从复杂的通讯格式的编制中解脱出来。设备驱动程序和世纪星有机的结合在一起。来完成数据采集和实时控制。对于不同的硬件设备,利用世纪星的设备安装向导,配置相应的设备驱动程序即可。在世纪星的浏览器下。选择设备驱动,用户可以按照系统的提示,依次完成I/O设备驱动参数的设置。其操作步骤如下:
1)设备安装向导
双击设备安装向导,出现设备安装向导对话框,框中列出了工业生产中常用的一些硬件设备(如PLC、板卡、智能仪表、变频器等)。如图1所示:
图1
组态软件已经对这些常用的设备根据各自的通讯标准,制作了相应的驱动程序,使应用人员从繁琐的底层驱动程序的开发中解脱出来。
2)选择硬件设备
在列表中选择相应厂家生产的硬件设备。列表将以树型分支方式列出某类设备的各种型号。根据用户的实际需要选择适当的类型。注意,由于设备的类型不同,其通信协议也可能不同,如果设备类型与实际应用的类型不符,将会出现无法通信的现象。
3)设置通信参数
设备选择完后,点击下一步后进行通讯方式及参数等设置。在设置窗口中需要指定设备名称、通信的端口号、设备地址以及出现故障时尝试恢复的时间间隔和恢复时间的上限。设备名称实际上是所建立的驱动程序的对象名。与实体的硬件设备建立一一对应的联系。在上位机对多台下位设备控制时。上位机通过各个设备的设备名称来区分应该对哪个设备进行控制。通信端口的列表框内列出了32个串口(COMl~COM32),在进行选择时,端口号应与通讯线实际连接的串口一致。设备地址实质是为新建的设备指定一个编号,在RS485标准的串行通讯协议中有地址信息,其数据应在这里指定。在多串口参数设置窗口中,根据设备说明书,对波特率、数据位、校验位等进行设置。通过上述的过程,为上位机与设备的通讯连接已经做好了充分的准备。
4)变量定义
在开发系统的浏览器中双击变量词典,世纪星组态软件把变量分为“内存变量”、“I/O变量”和“系统变量”等。I/O变量的特点在于可以与I/O设备进行数据交换。为了使建立的变量中的值能和硬件设备数据寄存器中的值建立一一对应的关系,必须为该变量指定要连接的设备名,以及对应的寄存器。如果采集上来的I/O值与要显示的工程值存在一定的比例关系,则需要在建立变量时做一个线性转换。例如:I/O值为3500时,要显示的工程值如果为70,需得将I/O值比例缩小50倍,即:I/O小值除以小值等于50、I/O大值除以大值等于50。如图2所示:
图2
定义好变量之后,就可以在工程的画面中做一些变量连接和动画效果了。开发者可根据要求进一步丰富控制画面,从而达到直观、生动的效果。
一、应用背景
工业控制技术经过近几年的发展,已从早期的单机控制逐步走向了集中监控、集散控制。如今已进入网络时代,工业控制器的网络化也成为工控技术发展方向之一。为了方便不同厂家的不同控制单元进行组网,诞生了很多种通信协议,其中Modbus协议就是工业控制器的网络协议中应用较为普遍的一种。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。
因此在很多PLC中也专门针对MODBUS的通讯外围设备设置了专用的驱动指令。例如台达PLC中就有“MODRD”、“MODRW”、“RS”等MODBUS资料传输指令,但这些指令在使用时每次只能传输一组数据,无法同时传输多组数据,这就给设备的监控带来了一定的麻烦。例如在PLC和变频器之间通讯,若需要将变频器运行时的频率、电流、温度等数据瞬时传送给PLC,由 PLC对这些数据做出分析判断,并将参数显示在人机界面中。这时若用同一指令对几个参数分别传送,就会发现传出的数据并不是我们所需要的,数据明显的出现了混乱,有时还会出现乱码。
不同的参数在变频器中的地址本身就不相同,当然我们也需要在PLC中划分出不同的存储区来存放这些参数。既然地址是不同的那就排除了地址冲突的可能性,所以可能造成数据混乱的原因就应该是指令传输的时间发生了冲突。因此,为了避免多个参数传输时发生冲突,在区别其地址的基础上还需要区别其传输的时间。
二、实施方法
就以我公司所生产的新型精梳机为例,来具体说明实施的方法。精梳机是近年来在纺织行业使用较为普遍的一种设备,其主要作用是排出梳棉生条中一定长度以下的短纤维,**纤维整齐度,进一步清除纤维中残留的棉结、杂质,**纤维光洁度。由于精梳机的电气控制部分采用了PLC运算控制,变频器驱动调速,触摸屏操作显示的控制主线,因此在三者间就必然会用通讯协议来传输数据。其中触摸屏通过RS232接口与PLC连接,变频器通过RS485接口与PLC连接。
由于纺织设备通常使用在高温、高湿的环境里,并且空气中飘浮着大量的棉絮,因此在这种较为恶劣的环境中应用时变频器是应安装在电气柜中的。很多情况下我们都是通过电机的负荷来分析机械故障的,而电机的运行参数又直接反应在变频器上。根据变频器所显示的电机频率我们可以判断精梳机的实际运行速度是否符合设定速度;根据变频器所显示的电机电流我们可以判断精梳机的传动机构间隙是否合适,轴承运动是否灵活;根据变频器所显示的温度我们可以判断变频器的冷却风道是否被棉絮堵塞等等。但实际使用时电气柜是关闭的,而且变频器的显示区每次只能显示一个参数,若要查看其它参数就需要在变频器上不断的切换,很不方便。
在这种情况下,操作者和检修者对设备的运行情况并不能直观的了解,这就给检修与维护带来了很大的不便,如果能把变频器运行时的频率、电流、温度等参数在触摸屏上同时显示出来,就能直观的掌握电机的负荷和设备的运行状况了。我们使用的是台达VFD055M43A型变频器,支持Modbus协议,参照说明书不难看出频率、电流、温度的字址分别是2103H、2104H和210DH,在台达PLC程序中可以利用“MODRD”指令对变频器进行资料读取。为了避免读取数据的时间发生冲突,可以在PLC中利用软件来形成循环的时间脉冲,对这些参数依次读取。
假设在触摸屏上显示频率、电流、温度的寄存器地址分别是D1、D2和D3,刷新的时间是7个单位时间,先利用PLC编程软件形成一个如下图所示的循环时间脉冲,当然编制这个程序也有不同的方法,这里就不详细叙述了。可以用T1、T2和T3分别来触发“MODRD”指令,从而在不同的时间送出所需要的资料。
具体的做法可参照下面的程序,终传输的变频器参数可以作为一个画面显示在触摸屏中。
PLC中的相关程序
触摸屏中的相关画面
三、结束语
当然,要实现这些功能还有其它很多种方法,设计者也可根据自己的习惯选择。此外,也可以根据显示参数的数量来确定时间脉冲的数量,终形成一个脉冲对应一个参数的关系。也可以通过程序设定脉冲周期,从而根据需要来改变参数的刷新时间,终实现对多个参数的通讯传输功能。
1、引言
本文主要从应用的角度利用VB6.0的MSComm 控件和MODBUS协议,成功实现了某**控制系统中工控机与带RS-232输出接口的智能数字**积算仪之间的串口通信功能。D08-8CZM数字显示表应用于底吹氩**控制系统中**的显示,工控机通过读取其显示值作为反馈信号,从而实现**的闭环控制。
2、D08-8CZM型智能数字**显示积算仪与串口通信
2.1 硬件构成
D07-12A型质量**传感器采用毛细管传热温差量热法原理测量气体的质量**(无需温度压力补偿)。将传感器加热电桥测得的**信号送入放大器放大,放大后的**检测电压与设定电压进行比较,再将差值信号放大后去控制调节阀门,闭环控制流过通道的**使之与设定的**相等。当本**积算仪与MFC(质量**计)配套使用时,只需用电缆通过D型插头将**积算仪与MFC连接起来即可。然后采用一台上位机与一台D08-8CZM**积算仪进行通信的方式,使用RS232通讯方式:将2引脚(TXD)与上位机串口的RXD(工控机串口的2引脚)相连;3引脚(RXD)与上位机串口的TXD(工控机串口的3引脚)相连;5引脚(SG)与上位机串口的SG(工控机串口的5引脚)相连。
2.2 通讯原理
工控机作为上位机与从机(数字**积算仪)采用主从应答方式进行通信,一个网络中只有一个主机(上位机,节点地址为0),主机通过站号(数字**积算仪的唯一地址)区分不同的从机。上位机始终处于主动状态,根据程序运行的需要向(通信端口)数字**积算仪发出读写等命令;从机处于被动状态,接收并响应上位机的命令。需要读采样数据时,上位机通过通信口向指定地址的数字**积算仪发出读数据命令,数字**积算仪响应并将数据准备好,按统一的数据通信帧格式编成响应字符串,主机再次读通信口接收缓冲区即可读到所需的数据。向数字**积算仪写数据时,上位机向指定数字**积算仪发出写命令及参数数据,积算仪即可接受并返回响应情况。上位机通过RS-232通信进行运行状态监控、参数设置、诊断等远程测控功能,实现这些功能采用了不同的通信格式。其中MODBUS协议通讯原理图如下:
图1 MODBUS协议的询问应答环路
2.3 通讯协议
本通信协议应用于D08-8CZM型**积算仪与上位机的通信,数据以16进制格式传输,波特率:9600;数据位8位;停止位:1位;效验位:无。本协议与MODBUS协议兼容,可以通过上位机显示**积算仪的瞬时**、累积**、满量程、单位和阀状态(包括阀控、关闭和清洗),而且可以通过上位机设定**积算仪的瞬时**、使**积算仪的累积**清零。因此在本协议用到了MODBUS协议的命令$03(Reading 1~9words)、命令$05(Force single coil)和命令$06(Writing 1 word)。
使用命令$03可以通过上位机读**积算仪的当前状态,其通信协议的具体格式为:
上位机 积算仪:01 03 00 02 00 08 E5 CC
各字节含义:
01: MODBUS地址;
03: 功能码03(Reading 1~9words);
00 02:起始地址,00为高8位,02为低8位;
00 08:读取的字数;
E5 CC:CRC效验值,E5为CRC的低8位,CC为高8位。
上位机 积算仪:01 03 10 (1)~(16) CRCL CRCH
各字节含义:
01:MODBUS地址;
03:MODBUS命令号;
10:上传的字节数;
(1)~(4):瞬时**值;“00~09”表示数字“0~9”,“10~19”表示“0.~9.”;
(5)~(10):**累积值;同上;
(11)~(14):满量程;同上;
(15):**单位;00表示SCCM和SCC,01表示SCCM和SL,11表示SLM和SL;
(16):阀状态;00表示关闭,80表示阀控,FF表示清洗;
CRCL:CRC的低八位;CRCH:CRC的高8位。
3、用VB实现串行通讯
3.1 MSComm控件
VB的通信控件MSComm能够提供串行通信的全部功能,程序编写、调试简单方便,开发速度快,该控件封装了通信过程中的底层操作程序,用户只需设置和监控控件的属性和事件,就可以方便地实现异步串行通信。
采用MSComm控件接收数据,按照接收方式分两种形式:事件驱动方式,定时查询方式。本例为适应**的实时控制采用定时驱动方式,若定时器计时到,通过串行通信口向指定地址**积算仪发出读写等操作命令,等待时间到则检查InBufferCount属性值来判断输入缓冲区中是否接受到了相应数目的字符,从而进行读取、判断数据合法性和数据存储、处理等操作。
3.2 通信功能的编程实现
程序框图如下:
图2 串口通信程序框图
串口初始化:MSComm1.CommPort = 1
MSComm1.SThreshold = 1
MSComm1.Settings = 9600,N,8,1
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.bbbbbMode = combbbbbModeBinary
打开串口并定时发送数据命令:Private Sub Timer1_Timer()
Dim bytearray(0 To 7) As Byte
bytearray(0) = &H1
bytearray(1) = &H3
bytearray(2) = &H0
bytearray(3) = &H2
bytearray(4) = &H0
bytearray(5) = &H8
bytearray(6) = &HE5
bytearray(7) = &HCC
MSComm1.bbbbbLen = 21
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
MSComm1.Output = bytearray
End If
End Sub
接受数据:Private Sub MSComm1_onComm()
Do
DoEvents
Loop Until MSComm1.InBufferCount = 21
Dim dataread() As Byte
Dim tempdata As Variant
Dim str As bbbbbb
If MSComm1.CommEvent = comEvReceive Then
tempdata = MSComm1.bbbbb
ReDim dataread(UBound(tempdata)) As Byte
For i = 0 To UBound(tempdata)
dataread(i) = tempdata(i)
End Sub
同理利用以上程序框图和通信协议可以完成下图的所有功能:
图3 基于VB的D08-8CZM型**积算仪
4、结束语
利用VB6.0的MSComm 控件和MODBUS协议,实现了工控机与带RS-232输出接口的智能数字**积算仪之间的串口通信功能,使其能够实时的采集瞬时**,并成功的应用于底吹氩**闭环控制系统。这种通信方式灵活方便,结构简单,可靠性高,完全达到了预期的要求,具有较好的实际价值和使用性。