LabVIEW与永宏PLC通信
时间:2023-03-21来源:佚名
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除外),具体的通信步骤如下:
图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协议的设备间通信也可以使用此类方法。 |