在LabVIEW上编写PLC串口调试程序
怎样用LabVIEW和OMRON PLC通讯

怎样用LabVIEW和OMRON CP1H PLC通讯Labview和omron plc通讯有两种方法,第一就是用普通的RS232通讯,第二就是用DSC里面的OPC SERVERS的驱动来定义变量通讯。
首先介绍RS 232通讯方法,第一,串口初始化如下图此串口初始化函数定义一定要和OMRON PLC的232参数一致,不然下面所做的程序绝对和PLC通讯不上。
波特率(每秒位数):115200数据位:7奇偶校验:EVEN停止位:1流控制:无超时:2000其它参数均选择默认设置。
上面所做的设定是所有串口通讯协议必须定义的,只是参数配置不同而已,一定要注意参数要外部元件对应起来。
第二步,是布尔至数组转换OMRON的PLC写入IO位的命令格式是@ 00 WR 4000 0000 0000 FCS * 回车@ 00 WD 4000 0000 0000 57 *不过具体想往PLC里面写入什么命令,要参考相应的命令格式。
可以到PLC 公司查询帧格式命令。
上图中的程序只是反映了字符@ 00 WR 4000 0000 0000 ,剩余FCS * 回车字符在下一个写入串口函数时反映,不过也可以在上面程序里写入,看个人爱好。
流入下一步上图中的布尔1 ,布尔2,和布尔3,就是按钮,也就是反映在PLC中的位,上面的图中我们所做的程序只是向PLC写入一个通道的位状态,比如2000通道的,2000.00 ,2000.01 ,2000.02可以往后增加到16位。
上图中的创建数组函数是把所有布尔组合起来反映一个?数,既布尔1为真的时候就是1,布尔2为真的时候就是2,布尔3为真的时候就是4,那个布尔为真就把所有的布尔值相加所得到的值就是创建数组函数的值,等把布尔函数和数组函数关系建立起来之后,下一步就是建立数组函数和布尔数组至数值函数的关系,在下一步就是建立布尔数组至数值函数和数值至十六进制字符串转换函数的关系建立.上面所解释的内容,只是OMRON的PLC写入IO位的命令格式中的写入数据中的内容,即其他内容可以直接通连接字符函数建立输入常量或者建立常量来直接定义,比如:@ ,00,WR 等都是直接填入即可。
LabVIEW与PLC通信实现LabVIEW与工业自动化设备的集成

LabVIEW与PLC通信实现LabVIEW与工业自动化设备的集成实验室虚拟仪器工作环境(LabVIEW)是一种广泛应用于工程领域的集成开发环境。
它提供了一套强大的工具和函数库,用于开发、调试和控制各种自动化系统。
而工业自动化设备控制的核心组件之一是可编程逻辑控制器(PLC)。
本文将探讨如何利用LabVIEW与PLC进行通信,实现LabVIEW与工业自动化设备的集成。
首先,LabVIEW与PLC通信的基本原理是通过采用适当的通信协议,实现两者之间的数据交换。
常见的通信协议包括Modbus、Profibus、CAN等。
具体选择哪种协议取决于PLC的型号和通信需求。
其次,实现LabVIEW与PLC通信的步骤如下:1. 设定通信参数:首先,需要在LabVIEW中设置与PLC通信的参数,包括通信端口、波特率、校验位等。
这些参数需要与PLC的设置保持一致,以确保通信的正常进行。
2. 建立通信连接:LabVIEW提供了各种通信协议的工具包,可以简化通信连接的建立。
通过配置通信端口和地址,LabVIEW可以与PLC建立连接,并获取或发送数据。
3. 读取PLC数据:一旦建立了通信连接,就可以使用LabVIEW的读取函数来获取PLC中存储的各种数据。
这些数据可以用于监测PLC的状态,或作为LabVIEW控制算法的输入。
4. 控制PLC操作:除了读取数据,LabVIEW还可以通过写入函数来控制PLC的操作。
通过向PLC发送指令,LabVIEW可以实现对PLC的远程控制,例如开关某个设备、改变参数设置等。
5. 设定时序与触发机制:为了实现LabVIEW与PLC的同步操作,需要设定适当的时序和触发机制。
LabVIEW提供了定时器和触发器等工具,可以根据需要来设定数据采集或控制操作的时间间隔和条件。
除了以上的基本步骤,还可以结合LabVIEW的图形化编程特点,进行数据处理和界面设计。
LabVIEW可以对PLC传感器采集的数据进行实时分析和处理,通过图表、曲线等形式直观地展示数据。
LabvIEW串口编程

在LabVIEW 中编写PLC串口调试程序(二)---- 2007自动化网杯自动化行业应用大奖赛所属行业 : 其他发布公司:2007自动化网杯自动化行业应用大公司联系方式:查看[编者按]:自动化网为推动各自动化专业技术人员之间的技术交流,展示自动化技术在各行业的深入应用,特举办“2007‘自动化网’杯自动化行业应用大奖赛”。
欢迎大家参与投稿,稿件请发到:soft@ ,并注明“2007自动化网杯自动化行业应用大奖赛”![查看本次征文活动内容]作者:高郁添贾会玲第五步动作就是在完成发送与读取后关闭占用的串口资源。
这一步动作由VISA节点“VISA Close”完成。
图标及端口见图2-8图2-8 串口关闭节点该节点的主要功能:关闭由VISA resource name端口指定的设备连接。
可用于关闭一个已经打开的串口,从而释放LabVIEW对这个串口资源的占用。
整个动作在LabVIEW中的写法如图2-9:图2-9 串口读写程序的后面板以上是一个较为简单的串口读写程序。
由于在整个PC link网络中连接了多个站点的松下PLC,而PLC一次最多只能被读取连续的27个数据寄存器的数值,所以,要完成整个生产系统的数据读取,必须要分开执行多次读和写的动作。
在这种情况下,就需要考虑读写的时序问题。
要完成连续的周期性的多点读写操作,在LabVIEW中可以使用顺序结构。
顺序结构的功能是强制程序按一定的顺序执行。
顺序结构可分为层叠式与平铺式。
不过这两种结构执行相同的读写操作,时间和顺序都相同,都可以实现对于串口的连续多点读写。
由于读写数据时每个数据长度不一定都一样,数据较多的,要等待较长的时间,这样才能保证在等待时间内将所有数据读取完毕;数据较少的,就不需等待同样的时间。
然而等待的时间一般较难确定,时间设得太长,占用串口的时间就会较长,会降低通讯效率,造成数据延时;时间太短,数据没有完全返回时就执行下一步程序,可能会造成数据的丢失。
在LabVIEW上编写PLC串口调试程序

在LabVIEW上编写PLC串口调试程序1. 概述虚拟仪器代表了今后测试仪器的发展方向,而LabVIEW作为虚拟仪器的一种较为优秀的开发平台,因其编程简单、功能图表丰富及开发环境开发,而得到日益广泛的应用。
在生产型企业中的典型应用是由PLC网络和工控机组成的以LabVIEW为开发平台的生产监控系统。
该系统通过PLC、LabVIEW的控制程序和网络通讯功能,实现生产网络各功能的控制和监控。
因此实现工控机与PLC网络的通讯和数据的解析是实现整个监控系统的基础。
此文中,介绍了如何通过LabVIEW的串口节点和仪器I/O助手实现读写松下FP2 系列的PLC。
图1-1为PLC和工控机组成的生产网络的典型架构图,其中各PLC以PC Link 网络的形式通讯。
图1-1 PC机与PLC组成的典型网络架构图图中PLC模块组的各模块单元分别为:a) PW:电源模块b) CPU:松下FP2系列PLC控制模块c) MW:网络通讯单元MEWNET (Multi-wire link unit)d) SDU:串口通讯单元Serial data unite) I/O:输入输出模块2. 串口读写程序的编写2.1. LabVIEW中VISA节点简介在LABVIEW中用于串行通信的节点实际上是VISA(Virtual instrument software architecture)节点。
为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含6个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能,这些节点位于Functions模板/All Functions子模板/Instrument I/O子模板、Serial子模板中,如下图2-1所示。
图2-1 VISA节点选择路径在LabVIEW中,VISA串行通信节点的使用方法比较简单,且易于理解。
以下试验结合各节点的参数定义、用法及功能,详细说明了一个完整的串口读写过程。
labview和三菱plc网口通讯

labview和三菱plc网口通讯LabVIEW和三菱PLC网口通信LabVIEW是一种非常强大的可视化编程环境,它的广泛应用让许多工程师和科学家受益。
而三菱PLC则是一种常用的可编程逻辑控制器,用于控制和监控工业过程。
现在,我将探讨LabVIEW 和三菱PLC之间的网口通信,以及其在工业系统中的应用。
首先,让我们了解一下LabVIEW和三菱PLC的基本概念。
LabVIEW是一种图形化编程语言,它通过拖拽和连接图标形成程序的结构。
这使得编程变得直观且易于理解。
同时,LabVIEW拥有丰富的工具箱,可以用于各种领域的应用,包括数据采集、信号处理、机器视觉和控制系统等。
三菱PLC是一种常见的工业自动化设备,用于控制和监测各种工业过程。
PLC具有高可靠性和稳定性,广泛应用于制造、工业自动化和物流等领域。
它可以通过数字输入和输出,以及模拟输入和输出与传感器、执行器和其他设备进行通信。
PLC的主要功能是读取输入信号,根据预设逻辑进行处理,然后输出相应的控制信号。
为了实现LabVIEW和三菱PLC之间的通信,我们需要使用网口协议。
网口通信是一种基于以太网的通信方式,通过局域网将计算机和PLC连接在一起。
在此过程中,PLC充当服务器,而计算机充当客户端。
通过网口通信,我们可以实现实时数据传输和控制。
在LabVIEW中,我们可以使用NI-VISA工具箱来实现与PLC 的网口通信。
NI-VISA是一种操控和监视各种设备的工具,在LabVIEW中通过使用VISA函数库进行调用。
通过配置合适的IP 地址和端口号,LabVIEW可以轻松地与PLC建立连接,并进行数据的读取和写入。
对于三菱PLC,我们可以使用GX Works2软件进行配置和编程。
GX Works2是三菱电机为PLC编程和调试提供的集成开发环境。
通过GX Works2,我们可以创建PLC程序,并将其下载到PLC设备中。
同时,我们也可以配置PLC的网口参数,以实现与LabVIEW的通信。
欧姆龙PLC与LABVIEW通讯

欧姆龙PLC与labview通讯方法1.连接线的制作:9PIN---RS232PC母PLC公2—————————23—————————35—————————94-----------55-----------4注:PLC公头端4PIN和5PIN短接2.安装LABVIEW……..1.Z:\1.1、SoftWare Setup\6、LabVIEW\LABVIEW2011找到labview安装文件,双击并安装。
2.Z:\1.1、SoftWare Setup\6、LabVIEW\LABVIEW2011\ToolKits找到OPC安装文件,双击并安装。
3.欧姆龙PLC通信设置波特率,格式,模式进行修改1.波特率:初始值为9600,一般情况下可修改为1152002.格式:7,2,E3.模式Host link 不用变化4.OPC的通信设置1.找到OPC软件并打开2.右击“new project”新建文件文档,右击“Click to add a channel”3.更改项目名,右击“下一步”4.“Device driver”选择“Omoron Host Link”,继而下一步5.检测PC端的连接线的COM口,并确定COM?波特率,停止位等,根据PLC端一一对应设置。
继而下一步,下一步,下一步,直到完成!6.单击“Click to add a device”,只需修改Request为100就OK了,其余直接下一步,直到完成。
7.在OPC中添加信号点,沟通OPC与PLC之间连接,单击“Click to adda static tag……………….”8.信号点参数设置。
NAME:按自己需要。
为了以后在程序中方便使用,最好注释明白Address:PLC的I/O一般可用IR##.##.PLC的D值,一般可用DM###.## Descripition:可有可无,不影响功能。
Data type:选择BOOLEAN或者WORD,看需求Client:一般选择READ/WRITE,看需求。
LabVIEW与PLC串控制系统设计方案8

基于LabVIEW与PLC的串级控制系统设计摘要:详细介绍了采用RS232串口完成LabVIEW与PLC之间通讯,并利用该方法,设计了一种基于LabVIEW与PLC的串级控制系统。
实验结果表明:控制系统已达到了预期的设计效果。
关键词:LabVIEW;PLC;串级控制;串口通讯The design of a cascade control system based on LabVIEW and PLCXIE Jian jun,WANG Hong meng,XU Chun mei(Power and Mechanical Engineering School of Wuhan University,Hube i Wuhan 430072,China)Abstract:This article discusses an approac h to the realization of the RS232 serial transfer between LabVIEW and PLC.The ap p roach is used to design a cascade control system based on LabVIEW and PLC.The re sult of experiments shows that a satisfactory solutionis reached.Key words:LabVIEW;PLC;cascade control;serial transfer在过程控制中,由于工业现场非常分散,I/O点数众多,各种仪表的工作环境非常恶劣,采用数据采集卡和LabVIEW开发平台来完成现场的数据采集和控制显然不可取。
考虑到过程控制中的过程参数变化不是很快,而PLC恰恰可以克服数据采集卡在过程控制中的不足,并且具有较高的性能比,因而采取以PLC 为下位机,以装有LabVI EW软件的工控机为上位机开发平台,通过RS232或RS485串口与PLC通讯,实现对工业现场的监控与现场数据的分析。
labview串口调试

labview串口调试其实labview 传送的只是二进制的数,只是默认以ASCII 码显示而已。
除你楼主的方法,还有一种就是利用字符串到字节数组转换工具,将传送的数据按每8 位,保存为一个数组元素。
再用索引数组索引出需要的二进制数即可。
bview 对串口进行调试时,首先需要安装visa 驱动,可在NI 的官方网站上下载,不过速度好像不是很快。
2.最简模式下进行串口程序接收。
如图:然后在最右边接一个字符串接受区就可以接受到串口发送的数据了。
注意:通过串口发送的是ascii 码,因此如果单片机那边发送的是比如0x20 之类的数据,那么在接受端你用”Normal”模式将看不到任何东西,因为Normal 是以ascii 模式查看,而0x20 的ascii 表示空格,解决的方法为右键点击接受区(字符串指示器),然后选择16 进制模式便可以正常查看。
那如果要在单片机那么发送一个具体的数字,怎么才能正确的将这个数提取出来呢?这才是难点所在。
有种方法可以解决:在下位机(发送端)发送的就是表示该数的ascii 码,比如你要发送12,那么就发送49,50(ascii 比实际的数大48),因此在下位机专门写个函数将欲发送的数转换成ascii 码就可以正常发送了。
函数很简单,就是将其拆开然后加48。
此方法是专门用于labview,因为要从接收到的字符串中提取数字就必须用这种方法,当然其他的软件,比如说VB 之类的在这方面就简单一些,因为它可以在上位机对接受到的ascii 码进行处理还原。
3.得到字符串后,将有用的信息提取出来:比如收到如下信息: b0001b002b0003b0004b0005 如果字符串是上述固定格式,可以scan from string 函数直接将数字提取出来,但我遇到的问题是上面的格式在每次发送的时候却不是固定的(串口都这样)上述字符串有可能以如下方式收到001b0002b0003b0004b0005b00 此时scan from string 就会报错,因为它发现第一个不是字母等等。
基于LabVIEW与PLC的串级控制系统设计

基于LabVIEW与PLC的串级控制系统设计摘要:详细介绍了采用RS232串口完成LabVIEW与PLC之间通讯,并利用该方法,设计了一种基于LabVIEW与PLC的串级控制系统。
实验结果表明:控制系统已达到了预期的设计效果。
关键词:LabVIEW;PLC;串级控制;串口通讯The design of a cascade control system based on LabVIEW and PLCXIE Jian jun,WANG Hong meng,XU Chun mei(Power and Mechanical Engineering School of Wuhan University,Hube i Wuhan 430072,China)Abstract:This article discusses an approac h to the realization of the RS232 serial transfer between LabVIEW and PLC.The ap p roach is used to design a cascade control system based on LabVIEW and PLC.The re sult of experiments shows that a satisfactory solutionis reached.Key words:LabVIEW;PLC;cascade control;serial transfer在过程控制中,由于工业现场非常分散,I/O点数众多,各种仪表的工作环境非常恶劣,采用数据采集卡和LabVIEW开发平台来完成现场的数据采集和控制显然不可取。
考虑到过程控制中的过程参数变化不是很快,而PLC恰恰可以克服数据采集卡在过程控制中的不足,并且具有较高的性能比,因而采取以PLC 为下位机,以装有LabVI EW软件的工控机为上位机开发平台,通过RS232或RS485串口与PLC通讯,实现对工业现场的监控与现场数据的分析。
在LabVIEW中使用串口

在LabVIEW中使用串口第一部分使用LabVIEW系统VI一、串口VI介绍LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:二、使用说明在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。
图1、串口操作数据流图首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。
图2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。
发送数据使用VISA Write,接收数据使用VISA Read。
在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。
当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据。
图3、从串口发送数据图4、从串口接收数据在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISA Set I/O Buffer Size;而使用VISA Flush I/O Buffer则可以清空接收与发送缓冲区。
在串口使用结束后,使用VISA Close结束与VISA resource name指定的串口之间的会话。
图5、设置缓冲区大小图6、清空缓冲区图7、结束会话/线程具体的例子可以参考:examples\instr\smplserl.llb。
第二部分使用MSCOMM控件在LabVIEW中使用MSCOMM控件,与在VC、VB中使用一样。
同样可以使用中断方式进行接收。
图8、使用控件的串口收发程序图9、程序数据流图首先通过LabVIEW的工具菜单“T ools >> Advanced >> Import ActiveX Controls”将Microsoft的串口控件-“Microsoft Communications Control,version 6.0”添加到LabVIEW环境中,存放在缺省路径即可,这样在User Controls Palette里面可以找到这个控件。
基于共享变量模式LabVIEW与PLC的串口通讯

法 如 U / C 、L b I w 队列 以及 实时 F F 不 DPT P a v E IO
同 ,只 需要 在编 辑 时使用 属性 对话框 来 配置共 享变
量 ,而 不 需要在 应用 中配 置代码 .
NIL b E 数 据记 录 与监控 ( C)模 块 a VI W DS 将 图形 化编 程 的优 势扩 展 至开 发 H /C DA或 MI A S 多通道 数据 记录 应用 程序 .借 助 L b I W C, a V E DS 可 以利 用 标 签 , 交 互 开 发 分 布 式 监 测 和 控 制 系
Mo b s 连成 工业 网络 ,进 行集 中监控 _. du 协 J J
读/ 串 口;③ 关 闭 串 口资源 .实 现 串 口通 讯 的方 写
法 可有 :V S 库 、NIMo b s库 以及 DS &OP IA du C C 等 方式 .
2 1 VIA 库 . S
V S 是 由 V lg l IA XIpu &pa y系统 联盟 统一 制 定
Mo b s 议 d u
Mo b s协议 是 应用 于 电子控 制 器 上 的一种 du 通 用语 言 . 标准 的 Mo b s口使用 RS 2 2 du 一 3 C兼 容 串行接 口,它定义 了连 接 口的针 脚 、 电缆 、信 号 位 、传 输波特 率 、奇 偶校验 ,控 制器 能直 接或 经 由 Mo e 组 网 .通 过 此协议 ,控制 器相 互之 间 、 dm 控 制器 经 由网络 ( 如 以太 网)和其 它设 备之 间 例 可 以通 讯 .不 同 厂 商 生产 的控 制 设 备 可 以通 过
出利用共享变量的方式实现P 和P C 串口通讯 .此 方法 简单 、便捷 、 定性好 、可操作性强 、 C L 的 稳 人机界 面友好 、 阅读 简单 ,能够满足工业监视 、控 制系统的需求.
labview串口编程讲解

NI公司的Labview软件以其强大的软件功能和丰富的界面设计获得众多设计者的亲睐,串口通信是计算机很方便强大的一个工具,这里以一种思路实现labview读取发送到计算机串口的数据,发送到电脑串口的数据可以由单片机,PLC等,灵活应用。
在labview上面进行直观的界面设计和数据处理这里设计的是一个简单的界面,以布尔数组模拟显示外部输入的电平状态(传感器),具体实现过程在程序中介绍,程序如下图:很经典的一个VISA应用程序,在labview程序面板右键,仪器I/O,串口中调用,大循环左边第一个图标是配置串口,也就是串口通信协议的配置,我这里的是(1200,8,N,1)协议,再到里面的一个条件循环,真的情况下编程,假就默认为空,从左到右三个图标依次是属性节点,配置串口读取的属性的,连线即可;第二个是VISA设置I/O缓冲区,这个是很重要的,因为数据读取进来要进行缓存;第三个是VISA读取,就是读数据了,读取的数据暂时存在读取缓冲区中,大循环外面就是VISA关闭了。
下面就是数据处理,将读取数据缓冲区做局部变量以备后面调用处理,我这里面由单片机发送来的数据时字符串形式32字节一次发送的,由前面板的布尔数组可以知道那是按位显示的,一个字节有8位,所以进行如下处理:先将缓冲区的数据进行格式转换以常规数组显示,依旧局部变量通过索引数组函数取出最后一个数组元素,本来还准备进行数据格式转换的,但在前面板的最后一个元素显示处看出是十进制数,原来labview已经自动把发送来的.HEX(十六进制)数据转换好了,这样就省事了,下一步直接用数值至布尔数组转换就行了,这样在labview中打开串口,外部信号输入情况就很清楚的显示出来啦。
上面只是从基础方面介绍了串口数据的调用以及可能遇到的数据格式转换处理,理解基础概念,后面做扩展是很清楚的,愿学习愉快。
PLC S7-200 SMART 与LabVIEW OPC 以太网通信

PLC S7-200 SMART 与LabVIEW OPC 以太网通信PLC S7-200 SMART 与LabVIEW OPC 通过以太网通信的过程分为四步:①利用以太网将PC机和PLC连接,将程序下载到PLC中,并启动PLC;②设PC Access SMART 软件;③创建LabVIEW变量;④编写LabVIEW程序并运行。
各步说明如下:第一步程序编写及下载1、编写PLC程序(示例程序,验证通信情况)2、编译下载程序并启动PLC第二步设PC Access SMART 软件1、以管理员身份运行S7-200 PCAccess SMART软件2、右击MWSMART(TCP/IP) ,新建PLC,并Found CPU,左击CPU地址,并确定3、右击新建的PLC并新建文件夹(new folder)4 右击new folder新建item,并对item进行设置。
新建完所有的item 后,保存退出。
5、注意在保存时若出现“configurationcannot be savedwhile the server isactive”的情况,则“计算机右击->管理->服务和应用程序->服务->NI PSPService Locator”,右击停止该项服务,再尝试保存即可。
第三步创建LabVIEW变量1、打开LabVIEW软件,新建项目,再如右图,操作,选择I/O服务器2、在弹出的对话框中双击“OPC Client”3、选择之前建立好的OPC文件4右击“项目管理器”中的“OPC1”进行“创建绑定变量”5、在弹出的对话框中选择之前建立好的OPC文件,选中并将建好的变量添加至红色区域,并点击“确定”6、在弹出的“多变量编辑器”选择确定,如有弹出错误提示,之前步骤有错误,需要重新建立!7、将建立好的变量按住鼠标将其拖入VI程序中,编写程序。
第四步编写LabVIEW 程序并运行1、在LabVIEW 中编写程序并运行(示例)2、遇到该错误后,此时①可将电脑重启,使NI的启动和禁用相恢复默认值;②将上面禁用的服务重新启动。
基于Modbus RTU实现的LabVIEW与S7-200系列PLC的串口通信

I T 技术科技创新导报 Science and Technology Innovation Herald42L a bV IE W是美国国家仪器有限公司提供的一套软件开发平台,广泛应用于数据采集、监控、自动化测试测量领域[1]。
西门子S7-200系列PL C 具有紧凑的设计、丰富的扩展能力、极高的可靠性、便捷的操作性和强大的指令系统,广泛的应用于各种工业领域中。
M o d b u s 是一种串行通信协议,它已经成为工业领域的通信协议标准,并且是现在工业电子设备之间常用的连接方式。
M o d b u s 传输协议定义了控制器可以识别和使用的信息结构,而无须考虑通信网络的拓扑结构[2]。
M o d b u s 具有两种串行传输模式:A S CII和R T U。
它们定义了数据如何打包、解码的不同方式。
本文阐述的主要内容是以M o d b u s R T U 为基础实现的L a b V I E W 与S7-200系列PLC之间的串口数据通信。
1 系统架构该文以某企业数据采集与监控系统项目为背景。
该项目中,上位机为工控机运行L a bV IE W 软件,完成各个分系统的数据汇总和人机界面等功能;下位机PLC作为客户端,负责向上位机提供采集的数据,同时接收上位机控制指令。
S 7-200P L C 的通信口是R S -485串行接口,工控机是R S -232串行接口,之间通过RS485/RS232转换模块连接。
2 软件实现本方案,P L C 作为M o d b u s R T U 的从站,通过自由口通信模式实现。
2.1 配置RTU从站M o d b u s R T U从站功能是通过指令库中预先编好的程序功能实现的。
从站指令库只支持CPU上的通信端口0(Port0)。
从站指令库包括初始化程序M B U S _I N I T 和响应主站请求子程序M B U S _SLAVE。
M B U S _I N I T 子程序可以用S M 0.1调用,本方案配置如图1所示,M o d e 置1,A d d r取2,B a u d 设为9600,P a r it y置2,D e l a y 取默认值0,M a x I Q 取默认值128,M a x A I 为32,M a x H o l d 为1000, HoldSta rt设为“&VB0”,使用库存储器命令为M o d b u s从站协议指令所要求的V 存储器分配一个起始地址。
关于如何使用NI LabView编程软件连接PLC

10. 上步完成后进入下面的界面,这里是由你指定具体 PLC 型号了 11. 接下来一路点击“下一步”直至完成所有设置,最后界面如下:
这里框中的字符如果是“Bad”,那么很遗憾,你虽然在 NI OPC 上操作建立了通道 通信,但是实际上通信没有连 接成功,这原因肯定是前面的步骤没 有按操作去做, 特别是 PLC 的型号选择以及通信端口号及波特率的参数设置,请再次检查。直到这 里的字符全部是“Good”,才能往下操作,否则没有意义。 二、 操作 Labview 建立库文件 1. 请启动你的 Labview,这里特别是需要强调的是,一定要注意你的 Labview 版本和 DSC 模块的版本,如果 Labview 版本低于 DSC 版本,那么后面的操作你是完成不 了的,切记切记!
关于如何使用 NI 的 Lab View 编程软件连接/控制 PLC 寄存器
利用 NI OPC Server 连接 PLC 后创建变量在 VI 中使用
我是 NI Labview 入门小白,现今多数情况下也许只有小白在坚持写学习分享札记了……,写 这篇札记,其实原因很简单:希望把自己五 天时间内走的弯路理直,分享给大家 。也希望网上有 更多的心得分享,继续为你我学习的路上所用,以求事半功倍。
这里小白我仍不住插一句,我们还是多说一下“什么是 OPC”: OPC 这个概念简单的讲涉及到两家单位,一个为微软 Microsoft,一个是国际工业 标准组织;OPC 是国际组织为了统一自动化、仪器仪表等过程控制部件通信接口标 准而制定的一套文件,该文件在 Windows 操作系统的 OLE 框架下定义了一套统一 的接口标准,用于规范全球 各个厂家产品的通信接口设计(这里 说的是软件层面 的啊)。OPC 全称:OLE for Process Control 2. NI OPC Server 界面:
LabVIEW与永宏PLC通信 经典啊

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”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1-1 PC机与PLC组成的典型网络架构图
图中PLC模块组的各模块单元分别为:
a) PW:电源模块
b) CPU:松下FP2系列PLC控制模块
c) MW:网络通讯单元MEWNET (Multi-wire link unit)
d) SDU:串口通讯单元Serial data unit
e) I/O:输入输出模块
2. 串口读写程序的编写
2.1. LabVIEW中VISA节点简介
在LABVIEW中用于串行通信的节点实际上是VISA(Virtual instrument softwa architecture)节点。
为了方便用户使用,LabVIEW将这些VISA节点单独组成一个模块,共包含6个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能,这些节点位于Functions模板/All Functions子模板/Instrument I/O子模板、Serial子模板中,如下图2-1所示。
图2-1 VISA节点选择路径
在LabVIEW中,VISA串行通信节点的使用方法比较简单,且易于理解。
以下试验结合各节点的参数定义、用法及功能,详细说明了一个完整的串口读写过程 2.2. LabVIEW编写串口读写程序
图2-2所示的是LabVIEW 中串口读写程序的前面板设计,在此面板中可选择串口资源,设置串口参数,包括波特率、数据位、校验、停止位与握手控制(流控制等。
按如图1-2上的参数设置好,在发送区输入符合松下PLC通讯协议格式的读命字符串:“%01#RDD0000000026**\r”,按下运行按钮后,在返回区会收到正确返回字串:
“%01RD6F694F496F704F5051576F696F696F696F696F696F
696F696F696F696F696F696F696F696F696F696F696F696F696F696F696F696F6910”
依照《松下MEWTOCOL通讯协议》的解释,此字串已正确的返回数据寄存器DT0到DT26的数据信息。
这样就轻易地实现了LabVIEW的一个读取PLC数值的动作。
图2-2 LabVIEW串口程序前面板
在LabVIEW 中,前面板节点与后面板节点成对应前后关系,程序在后面板执行,其结果在前面板中显示。
打开LABVIEW的后面板,程序显示如下图2-3,其执行顺序为:第一步,初始化串口,设置串口的通讯参数,使其与PLC的串行通讯参数一致,此动作由“VISA Configuration Serial Port.vi”节点点完成。
如下图:
图2-3 LabVIEW串口设置节点后面板
该节点的主要功能是初始化、配置串口。
用该节点设置串口的波特率为:115200bps、数据位为:8位;停止位为:1位;奇偶校验为:奇校验;流量控制为:不使用。
其中波特率可设为115200 bps、19200 bps、9600 bps等;数据位一般可设为:7或8位;而校验位可设为:无校验、奇校验与偶校验等。
根据此节点的征:输入数字“0”代表为无校验,输入数字“1”为奇校验,输入数字“2”为偶校验。
于停止位则输入数字“10”代表选择的停止位为1位,输入数字“15”代表选择停止位1.5位,输入数字“20”代表选择停止位为2位。
握手控制(流控制)一般设为不使用,即输入数字“0”(握手控制只在串口缓存不足时才使用)。
完成了第一步串口设置后,程序就执行第二步动作,向串口写入字符。
这一动作由VISA节点“VISA Write”完成。
图标及端口见图2-4。
图2-4 VISA 的串口写节点
该节点的主要功能:将把write buffer端口输入的数据写入由VISA resource nam 端口指定的设备中。
可用于将字符串写入串口的输出缓存,将字符串从串口发送去。
第三步动作为等待动作。
串口将数据发送给PLC后,串口与PLC都需要时间执
行程序。
如图2-5所示的,由一个毫秒等待计时器与一个顺序结构框架表示此程序需要等待50ms,然后才可以执行下一步程序。
图2-5 串口等待50ms
第四步为读取串口缓存动作,这一步动作由VISA节点“VISA Read”完成。
图标及端口见图2-6。
图2-6 VISA 的串口读节点
该节点的主要功能:从由 VISA resource name端口指定的设备中读取由byte count端口指定长度的数据。
可用于从串口缓存中读出指定长度的数据。
而检测当前串口输入字节数可由属性节点“Property Node”中完成,图标及端口见图2-7。
图2-7 串口属性节点
该节点的主要功能:返回串口的输入缓存中数据的字节数。
在使用VISA Rea 节点读取串口前,可以先用VISA Bytes at Serial Port节点检测当前串口输入缓存中在的字节数,然后由此指定VISA Read节点从串口输入缓存中读取的字节数,可以保证一次将串口输入缓存中的数据全部读出。
此节点功能可设为其它VIS节点的属性如:TCP/IP或USB。
第五步动作就是在完成发送与读取后关闭占用的串口资源。
这一步动作由VISA节点“VISA Close”完成。
图标及端口见图2-8
图2-8 串口关闭节点
该节点的主要功能:关闭由VISA resource name端口指定的设备连接。
可用于关闭一个已经打开的串口,从而释放LabVIEW对这个串口资源的占用。
整个动作在LabVIEW中的写法如图2-9:
图2-9 串口读写程序的后面板
以上是一个较为简单的串口读写程序。
由于在整个PC link网络中连接了多个点的松下PLC,而PLC一次最多只能被读取连续的27个数据寄存器的数值,所以,要完成整个生产系统的数据读取,必须要分开执行多次读和写的动作。
在这种情况下,就需要考虑读写的时序问题。
要完成连续的周期性的多点读写操作,在LabVIEW中可以使用顺序结构。
顺序结构的功能是强制程序按一定的顺序执行。
序结构可分为层叠式与平铺式。
不过这两种结构执行相同的读写操作,时间和顺序都相同,都可以实现对于串口的连续多点读写。
由于读写数据时每个数据长度不一定都一样,数据较多的,要等待较长的时间,这样才能保证在等待时间内将所有数据读取完毕;数据较少的,就不需等待同样的时间。
然而等待的时间一般较难确定,时间设得太长,占用串口的时间就会较长,会降低通讯效率,造成数据延时;时间太短,数据没有完全返回时就执行下一步程序,可能会造成数据的丢失。
在LabVIEW 7.0中新增了一个仪器I/O助手“Instrument I/O Assistant Express VI”,此VI可以较好地解决串口等待时间的问题。
节点的图标如下图2-10:
图2-10 Instrument I/O Assistant Express VI的图标
仪器I/O助手提供了与GPIB、USB、串口、VXI等及其他传统仪器的直接I/O连接,使用这种代码生成助手(code-generating assistant),可以轻松地实现多点连续写串口功能。
以下只选择读串口的功能作解说。
首先,双击此节点,会弹出其操作界面,如下图2-11:
图2-11仪器I/O助手操作界面
此操作界面可选择串口,并设置串口特性。
点击如图“ ”按钮,会弹出如图2-1的串口设置界面。
图2-12 仪器I/O助手下的串口设置界面
此操作界面设置串口参数的功能与“VISA Configuration Serial Port.vi”节点相同,参数是被固化的,也就是说一旦完成了设置,串口的参数就不会随意地改动除非重新进入此界面再设置。
设置好参数后,可以点击“Add step”操作,跟随其指示操作可以完成其他设置。
如下图:
图2-13 I/O助手下的串口其他设置的界面
在此操作界面上可以测试串口数据,写入要发送的字符串,并进行单步操作也可添加读写命令等操作,还可以查询帮助文件,获得更详细操作说明。
完成任的输出端口“Taken1”和“Taken2”,以字符串形式直接输出。
但如果输出口大于5个时,其会将输出口变成“字符簇”输出,此时只要选择节点“Unbundle”将其解包就可以得出其相应的字符串。
通过以上设置,就可以实现不间断地读取PLC数据寄存
器“DT0”到“DT26”与“D100”到“DT126”中的数据。
实践证明,用此程序读取相同数量与数值PLC寄存器时,此功能节点要比用VISA节点写的程序要快很多,基本上个无等待、不间断的读取过程。
2.3. 结论
结合VISA各功能节点与仪器I/O助手“Instrument I/O Assistant Express VI”这两串口读写方法,依照《松下MEWTOCOL协议》,就可以轻松地实现对FP2系列PL 中各种状态的读写:包括改变输入、输出点的状态,对数据寄存器的数值进行读写,读取PLC的系统数据等操作,还能轻易地读写PC-link网络上各站点的数据与监控各站点的PLC状态。