完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
labview 8.5常用功能与编程实例精讲
随着通信与测试技术的发展,LabVIEW的优势越来越得到体现,LabVIEW也越来越多地被用来进行网络通信与自动测试开发。本章将具体介绍4个典型实例。 11.1 LabVIEW与永宏PLC通信 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协议的设备间通信也可以使用此类方法。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
有没有大佬知道labview中使用Halcon拍照算子采集图像后,如何把图像传入调用的Halcon算子?
3272 浏览 0 评论
LabVIEW对51单片机电压的采集,用VISA写入函数发送字符串voltage,VISA读取函数也是字符串?
2082 浏览 1 评论
1814 浏览 0 评论
7038 浏览 1 评论
2452 浏览 0 评论
3004浏览 1评论
4166浏览 0评论
有没有大佬知道labview中使用Halcon拍照算子采集图像后,如何把图像传入调用的Halcon算子?
3294浏览 0评论
2053浏览 0评论
2005浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 14:24 , Processed in 0.695902 second(s), Total 61, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号