西门子6ES7211-0AA23-0XB0诚信经营
电力线通信(PLC)可以利用现有基础设施提供低成本的网络。数字信号控制器为PLC网络提供维持稳健信号所需的处理性能,其运行开销和片上外设可进一步降低系统成本。下文将对此作进行详细介绍。
在环境非常恶劣的工厂或室外经常能见到照明、测量和其他控制应用,但在这些地方的网络通信若不采取常规方法则变得异常困难。因为恶劣的环境不仅对信号有相当大的干扰,而且在许多情况下,如果还没有专用通信布线的话,安装费用也非常昂贵。因此,建立控制网络通信的佳介质将是无处不在的电力线。
PLC是各种网络工业、公共事业和商业应用中的监控网络的理想解决方案。然而为了达到较高的效率,PLC必须具备成本效益和稳健性。而要实现这些性能,系统开发人员可以借助于数字信号控制器所提供的强大性能和集成度。
与使用专用传输线的传统网络不同,PLC网络可以通过现有的低压、中压和高压电力线在数公里范围内收发数据。基于高性能数字信号处理器(DSP)技术的数字信号控制器可在恶劣环境中的全规模网络上实现可靠的PLC吞吐量,使其能够监控所有的网络节点。
高度集成的控制器还能降低系统成本和易于适应不断变化的网络需求。在工厂、公共事业分布系统、办公建筑群、矿山、海底电缆和其他恶劣环境中,数字信号控制器都可以在实时监控所需速率下支持高效的PLC传输。
单芯片modem和应用软件
在许多监控应用中,成本是首要考虑因素,因此这时系统的集成度越高越好。PLC系统功能可以被分成三部分:模拟前端(AFE)、调制解调器(modem)以及测量或控制应用软件。AFE主要用于接收和驱动信号,并将信号从电力信号中分离出来;modem则使用特定的频率和键控技术对通信信号进行调制和解调。虽然很多设计方案中的modem和应用软件采用不同的控制器,但数字信号控制器带给PLC设计的一个重要好处是其可以在单个器件中集成modem和应用软件。
位于数字信号控制器核心的DSP可提供比价格相当的RISC MCU强得多的运算性能,这些性能足以用来执行modem和应用软件。另外,片上外设是针对控制需求特别选取的,其提供的是一种系统解决方案。数字信号控制器的性能和集成度可以减少元件使用数量和电路板空间,这对诸如可调光照明镇流器、电子表和电机驱动器等成本敏感的应用非常有利。另外,DSP的可编程性使得系统能更好地适应环境干扰,从而提高传输的可靠性,而DSP的额外MIPS性能还可以用来增加功率因数补偿等功能,从而使终端产品具有更高的能效。
稳健的通信
由于典型的PLC使用环境比较恶劣,因此传输必须高度稳健。在多种能传送位的物理层调制方案中,有两种特别适合工业监视和控制的方案,即频移键控(FSK)和二元相移键控(BPSK)。由于该两种方案都不依赖电力信号作为载波,因此可以用在任何频率、任何电压值的AC和DC电力线上。而当节点的供电中断时,只要控制通信电路的独立供电不间断,FSK和BPSK还能照常工作。
FSK采用两个不同的频率发送信号,电平“1”时用74kHz,电平“0”时用63.3kHz;而BPSK则采用相同频率发送“1”和“0”,其相位差为180度。监控通信常用标准是CEA179,其指定BPSK发送频率为131.5kHz,波特率是5.5kbps或每个码元24个周期。虽然CEA-179没有对FSK加以规范,但它完全兼容该标准的协议栈,因此也可以使用CEA-179进行传输。在满足系统限制的前提下,数字信号控制器可以通过改变传输频率来避开干扰,从而提高通信性能。
图1是专为可靠性进行设计的CEA-179数据包格式。该数据包和位的边界是用于位同步的24位向量,后面是指示数据起始位的11位字同步信号。发送器将每8位指令编码成一个11位的字,在接收器侧再将其解码并移位至存储器缓存。在PLC中,指令数据还增加了16位的循环冗余校验码(CRC),EOP则使用重复的11位字进行识别。因此,CEA-179协议与BPSK和FSK的结合可确保稳健的PLC传输,并能为多节点的实时控制提供足够的带宽。
图1:CEA-179数据包格式。
PLC设计
下面给出了使用数字信号控制器直接实现PLC的设计实例。图2是用于诸如可调光镇流器等应用的AC环境下的PLC通信与控制系统框图。AFE接收器-发送器位于图的左边,modem和应用软件算法运行在中间的控制器上,右边则包含了应用电路。例如在一个电流解决方案中,一个测量芯片与C2000相连。测量芯片执行测量功能,C2000使用PLC发送测量数据。虽然本文重点放在FSK调制方面,但相同设计经过AFE和控制算法方面的少许修改也可以用于BPSK。
图2:PLC系统框图。
上述设计中使用的数字信号控制器是一个带DSP内核的器件,该内核工作在100MHz时可提供100MIPS的性能。在一个普通应用中,约45MIPS用于modem,余下约55MIPS可用来运行应用软件。在34KB片上闪存和一次性可编程存储器中,12KB用于modem代码;12KB的数据存储器中的5KB用于modem;其余的存储器空间则全部用于应用软件。控制器还提供6个带独立定时器的脉宽调制(PWM)输出,可用于modem和应用软件的信令传输。12位ADC使用单通道对所接收的信号进行采样,剩余的15个通道则处于空闲状态。数字信号控制器还提供了SPI和SCI接口用于本地通信,另外还有30多个通用I/O通道。
PLC即可编程控制器(Programmable Logic Controller),是一种以计算机技术为基础的新型工业控制装置,它是专门为工业环境应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,在其内部存储和执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械设备或生产过程。PLC及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展功能的原则而设计。
PLC通信包括PLC间的通信及PLC与其他智能设备间的通信。随着计算机控制技术的发展,工厂自动化网络发展得很快,各PLC厂商都十分重视PLC的通信功能,纷纷推出各自的网络系统。新近生产的PLC都具有通信接口,通信非常方便。本章具体介绍LabVIEW与永宏PLC通信的设计过程。
11.1.1 通信硬件连接图11-1即为永宏PLC的硬件图,其中的硬件通信板可以选择,图11-2所示为选择的RS485与RS232的通信接口。
1.FBS-CB22通信板(Communication Board简称CB)
2.FBS-CB22通信板对应的盖板(每一种通信板都有其对应的盖板)
图11-1 永宏FBS系列PLC硬件
图11-2 FBS-CB22 RS232和RS485接口通信板
11.1.2 PLC串口通信原理PLC各型主机均内建2个通信接口的标准配置,即一个RS232和一个RS485通信接口,其RS232接口主要用于上下载程序或用来与上位机、触摸屏通信,而RS485接口主要用于组建使用RS485协议的网络,实现通信控制。
1.RS232接口RS232-C接口连接器一般使用型号为DB-9的9芯插头座,只需3条接口线,即“发送数据”、“接收数据”和“信号地”即可传输数据,其9个引脚的定义如图11-3所示。
图11-3 RS232-C接口连接器定义
在RS232的规范中,电压值在+3V~+15V(一般使用+6V)称为“0”或“ON”。电压在-3V~-15V(一般使用-6V)称为“1”或“OFF”;计算机上的RS232“高电位”约为9V,而“低电位”则约为-9V。
RS232为全双工工作模式,其信号的电压是参考地线而得到的,可以同时进行数据的传送和接收。在实际应用中采用RS232接口,信号的传输距离可以达到15m。不过RS232只具有单站功能,即一对一通信。
2.RS485接口RS485采用正负两根信号线作为传输线路。两线间的电压差为+2V~6V表示逻辑“1”:两线间的电压差为-2V~6V表示逻辑“0”。
RS485为半双工工作模式,其信号由正负两条线路信号准位相减而得,是差分输入方式,抗共模干扰能力强,即抗噪声干扰性好;实际应用中其传输距离可达1200米。RS485具有多站能力,即一对多的主从通信。
在串行通信中,数据通常是在两个站之间传送,按照数据在通信线路上的传送方向可分为3种基本的传送方式:单工、半双工和全双工,如图11-4所示。
图11-4 单工、半双工和全双工通信
单工通信使用一根导线,信号的传送方和接收方有明确的方向性。也就是说,通信只在一个方向上进行。
若使用同一根传输线既作为接收线路又作为发送线路,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。
当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。全双工方式无须进行方向的切换。
串行通信可分为两种类型,一种是同步通信,另一种是异步通信。采用同步通信时,将所有字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,填上空字符,因为同步传输不允许有空隙。采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数据位来作为分隔位。比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式高,因为同步方式的非数据信息比例比较小。但是,从另一方面看,同步方式要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每一个信息位的位置。这样一来,如果采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。在数据传输中,较为广泛采用的是异步通信,异步通信的标准数据格式如图11-5所示。
图11-5 异步通信数据格式
从图11-5所列格式可以看出,异步通信的特点是一个字符一个字符地传输,并且每个字符的传送总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一次有一个起始位,紧接着是5~8个的数据位,再后为校验位,可以是奇检验,也可以是偶校验,也可不设置,后是1比特,或1比特半,或2比特的停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿,以此标识开始传送数据。
11.1.3 永宏PLC通信协议永宏通信协议可以简单通过串口来实现,上位机的具体参数如图11-6所示。
永宏PLC除了拥有自己的永宏标准通信协议以外,还支持Modbus通信协议(Porto除外),具体的通信步骤如下:
通 信 界 面 | Port0(RS232或USB) | 通信速率4.8 kbps ~ 921.6 kbps(9.6 kbps) | |
Port1~Port4 (RS232、RS485或Ethernet) | 通信速率4.8 kbps ~ 921.6 kbps(9.6 kbps) | Port1~4可提供永宏或Modbus RTU Master/Slave通信协议 | |
大联机站数 | 254 |
图11-6 永宏PLC通信参数
(1)设定外围设备的参数。
— 控制方式(如启动、停止):通信控制。
— 频率给定方式:通信设置。
— 设置通信参数:波特率、数据位、校验方式、停止位、RTU或者ASCII方式。
— 站号。
(2)PLC同该设备的RS485接线。
(3)改变设备的控制地址。找到所需要的控制地址,然后变成永宏Modbus地址。
(4)设定PLC通信接口的通信参数和通信方式,PLC和该设备上配置的参数要一致。
(5)在PLC内写M-BUS指令,并填写所需要的相应的通信表格。
(6)程序写好后,接通电源,进行调试。
11.1.4 程序结构本例程序采用循序结构控制,程序流程框图如图11-7所示,主要由打开串口、设置串口、向串口写命令、读返回值、关闭串口4部分组成。
图11-7 程序流程
程序中对串口的操作使用的是VISA。
VISA是虚拟仪器软件结构体系(Virtual Instrument Software Architecture)的简称。VISA是在所有LabVIEW工作平台上控制VXI、GPIB、RS232以及其他种类仪器的单接口程序库,是组成VXI Plug & Play系统联盟的35家大的仪器仪表公司所统一采用的标准。采用VISA标准后,就可以不考虑时间及仪器I/O选择项,驱动软件可以相互兼容。VISA的功能模块包含在LabVIEW Instrument I/O的VISA子模板中。
VISA驻留于计算机系统中,是计算机与仪器之间的软件连接层,用以实现对仪器的控制。VISA对于测试软件开发者来说是一个可调用的操作函数集,它本身不提供仪器编程能力,只是一个高层API(应用程序接口),通过调用低层的驱动程序来控制仪器。NI-VISA的层次如图11-8所示。
VISA的内部结构是一个先进的、面向对象的结构,这一结构使得VISA和在它之前的I/O控制软件相比,在接口无关性、可扩展性和功能上都有很大提高。VISA主要由Config模块、Write模块、Read模块、Close模块组成,下面对这些模块做详细介绍。
VISA Config模块对VISA资源信息如波特率、通信端口名称、数据校验、数据位等进行配置,并通过VISA resource Name端口将打开的VISA资源名称传递给下一个节点。
VISA Write模块把write buffer中的字符串写入VISA session指定的设备中。dup VISA session向下传送相同的session值。在UNIX工作平台上,数据同步写入;在其他工作平台上,数据异步写入。return count返回实际传送的字节数。error in和error out字符串用于说明出错状况。
VISA Read模块读取由VISA session指定设备中的数据。byte count指明读入read buffer中的字节数,当收到的字节数小于read buffer中所指定的字节数时,VISA read 将会一直等待,直到收到的字节数等于read buffer中所指定的字节数。VISA session向下传送相同的session值。同样,在UNIX工作平台上,数据同步读入;其他平台上的数据异步读入。
VISA Close模块关闭由VISA session指定设备的通信过程,释放系统资源。
VISA仪器控制流程见图11-9。图11-10为串口读写程序示意图。
图11-8 VISA结构层次 图11-9 VISA仪器控制流程
图11-10 串口读写程序
11.1.5 程序编写基于LabVIEW的PC与PLC串口通信程序的面板如图11-11所示。
根据永宏PLC的通信协议及数据操作流程,本程序采用顺序结构。顺序结构可实现数据流的顺序流动,首先打开串口和设置串口参数(如图11-12所示),波特率为9600 Bps,串口号为COM1,偶校验(Even),7位数据位,数据停止位为10(如图11-13所示)。
图11-11 程序面板 图11-12 VISA串口配置
图11-13 开串口和设置串口参数
第二步写入命令。先要对命令进行判断,看其是否合法,后面板程序如图11-14所示。然后,判断写入的命令是否超长,并将合法的数据组合成可写入的命令,后面板程序如图11-15所示。
图11-14 检查输入的命令合法性
图11-15 根据通信协议进行数据组合
串口写入过程需要时间,所以在这一步之后需要延时250ms,如图11-16所示。接下来就是读串口返回值。通过VISA读取返回的数值(如图11-17所示),然后进行分析检验,判断所接收的数据是否正确。
图11-16 将数据写入PLC的R0寄存器
检验数据之后这个操作流程就结束了,可以关闭VISA串口(如图11-18所示)。
图11-17 读串口返回值 图11-18 关闭串口
11.1.6 实例小结本例运用LabVIEW驱动配置方法通过VISA建立了上位机与永宏PLC通信的程序,对于其他品牌和型号的PLC通信,同样可以使用该方法。同样,Modbus协议的设备间通信也可以使用此类方法。