labview网络通讯问题,第1张

如果局域网络中有DHCP 服务器,则可以在IP 配置栏选择DHCP。

如果在局域网络中没有DHCP 服务器的话可以设为静态IP,但需注意子网掩码及预设网关的设定要跟同一个局域网络中的设定一样。

直接将将电脑和ifd9506连接的话,两者的IP地址的前三段要设为一样:1921681x和1921681y, x和y在0-255中任选一个即可。

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

使用NI OPC服务器查看现有的PLC标签

1 选择开始》程序》National Instruments》NI OPCServers》NI OPCServers,启动NI OPC服务器。使用NI OPC服务器,您可以创建、配置、查看与PLC关联的标签。

2 NI OPC服务器需要与已经载入的PLC仿真工程一起启动。这个工程仿真在NI OPC服务器中已经建立配置的PLC。

说明:如果没有载入仿真工程,在NI OPC服务器中选择文件》打开,浏览C:\Program Files\National Instruments\Shared\NI OPC Servers\Projects\simdemoopf。工程如图1所示。

图1:显示仿真PLC的NI OPC服务器

展开Channel_0_User_Defined,选择Sine,查看正弦标签。标签在最右边的窗口中显示。这些标签被绑定到PLC的寄存器上,由LabVIEW读取。

通过PLC OPC标签查看数据。

1 在NI OPC服务器中,选择Tools»Launch OPC Quick Client。这样可以启动OPC快速客户端,您可以用来查看OPC标签数据。

2 展开National InstrumentsNIOPCServers文件夹,选择Channel_0_User_DefinedSine。这样可以选定需要监视的设备。

3 请注意所有的正弦标签都列出在右边的窗口中,且如图2所示正在更新显示仿真正弦数据。

图2:NI OPC快速客户端显示仿真正弦OPC标签

说明:要获取NI OPC支持的设备/驱动程序列表,请访问nicom/opc。

通过创建I/O服务器将LabVIEW连接到OPC标签

在本小节中,将创建OPC标签的LabVIEW接口,称为I/O服务器。I/O服务器以您指定的速率,用当前标签数值更新LabVIEW。

1 在LabVIEW的使用入门窗口中,点击文件》新建项目。这将打开新建LabVIEW项目。

2 如果即时帮助窗口不可见,按Ctrl+H键显示窗口。保持窗口打开,可以得到鼠标指针所指向对象的帮助信息。

3 在LabVIEW项目浏览器窗口中,右键点击我的电脑,选择新建》I/O服务器,如图3所示。

图3:通过LabVIEW项目新建I/O服务器

4 在新建I/O服务器窗口中选择OPC客户端,点击继续。

5 仍已注册OPC服务器框中选择National InstrumentsNIOPCServers,设置更新速率(ms)为100。这将创建LabVIEW与OPC标签的连接,每隔100 ms更新。

Figure 4 Configuring the OPC Client I/O Server

6 选择确定。在您的项目浏览器窗口中自动创建了库,用于管理I/O服务器。

7 仍项目浏览器窗口中选择文件》保存所有,将项目保存为OPCDemoProject,将库保存为OPCDemoLibrary。

创建通过I/O服务器连接到OPC标签的共享变量

在本小节中,将创建绑定到OPC标签上的共享变量,仍而可以在LabVIEW中本地访问PLC数据。使用共享变量,您可以在一台计算机或是网络中,在多个LabVIEW应用程序间共享数据。

创建绑定到PLC OPC标签上的新共享变量。

在LabVIEW项目窗口中,右击我的电脑,选择新建》库。这样可以为共享变量建立一个新库,用于连接到PLC的OPC标签。

右击新建的库,选择创建绑定变量……

在创建绑定变量窗口中,选择OPC标签,通过浏览来自OPC服务器的仿真正弦数据,选择共享变量所需绑定的OPC标签,如图5所示。

图5:选择需要绑定到共享变量的OPC标签

4 选择所有正弦项目,点击添加确定。这样就创建了绑定到PLC OPC标签上的共享变量,将它们载入到多变量编辑器中。

5 在多变量编辑器中,选择完成。这将把新的共享变量添加到前所建立的库中。

说明:LabVIEW DSC模块通过为数据库直接添加记录数据、报警和事件的功能,在无需编写LabVIEW应用程序的情冴下,增强了共享变量。

通过右击库,选择另存为,将新库以OPCItemlvlib为文件名保存在项目浏览器窗口中。

通过右击OPCItems库,选择部署,对共享变量部署。这样就可以収布共享变量,使它们可以在网络上通过其他计算机、OPC客户端和LabVIEW实时自动化控制器(PAC)使用。

您现在可以通过共享变量在LabVIEW中本地访问PLC数据。

modbus是一种比较通用的协议,用来做数据采集很方便,也很便宜,至少比NI的板卡便宜两个量级,但是配置较为复杂,同时采集速率并不高。对于1s左右采样间隔的数据来说,modbus是一种非常合适的方式。

labview使用modbus有很多种方法,其中最方便地第一种就是用共享变量引擎(Shared Variable Engine, SVE)来读写modbus的寄存器(类似模拟IO)和线圈(数字IO)。其他方法比较繁琐,因此这里只研究了这种labview使用I/O Server访问modbus的方式,其它的比如采用VISA的modbus串口/TCP VI进行读写的方式以及采用OPC服务器进行读写的方式在这里就不研究了。

这里采用的win10 64bit中文版系统,Labview 2018(和谐版),同时安装了分布式控制系统(Distributed Control System, DSC),这样就可以使用modbus I/O Server了,根据官网资料,除了labview,必须还要安装DSC或者RT模块,才能使用modbus,其中最好是安装DSC模块。

这里的系统架构如下图所示,Labview负责逻辑和前端展示,与PLC的modbus协议进行交互是通过I/O Server完成的。I/O Server其实是NI 的共享变量引擎SVE的一种插件。所以在运行的时候需要安装和启动SVE。

这个SVE一般在windows里面是以服务形式安装的,安装的服务名为NITaggerService,安装位置是在C:\Program Files (x86)\National Instruments\Shared\Tagger。如果是SVE的一些问题,可以查看这个服务是否启动。但是坑爹的NI没有说log文件在哪儿,有时候查错很麻烦。

安装了DSC之后,就可以启用modbus I/O Server了,对于中文Win10系统装labview 2018而言,坑的地方在于你按照官网教程走完是不行的,会出现modbus变量无法读取的问题,并且显示链接已经断开。如果你手动启动SVE服务(即:NITaggerService),当时是可以启动的,然后你用NI分布式系统管理器(NI distributed system manager)查看变量会不成功,再看服务已经停止了,但是由于没有log文件,所以我们也不知道它什么时候停止的。

后来发现一个方法可以修正这个问题:在NI分布式系统管理器中重新编辑一次I/O Server(参考下土),再在“操作”菜单下点击“启动本地共享变量引擎”,所有的值就正常了。 

modbus在I/O Server中的的地址设置比较诡异,是按照[数据解释类型][功能码地址头][PLC格式的起始地址][位]来区分的。

比如SD400002,其中数据解释类型是SD,表示有符号的双字整数(Signed DWord Integer),双字意味着这是个32位的整数,需要两个寄存器,功能码地址头是4,表示功能码是3,即modbus的保持寄存器(Holding Register)字段,后面的PLC格式的起始地址是5位的00002,也就是从第2个寄存器开始,连续取2个寄存器(即00002和00003),组合成有符号的双字整数。

至于组合的过程涉及到大小端(Endianness)的问题,大小端涉及到byte order和word order的问题,一个word就是一个寄存器(16位),一个byte是8位,当一个寄存器中的两个byte组合并解释为变量的具体取值的时候,可以选择把哪个byte放到前面,哪个byte放到后面,这就是byte order,大部分情况下,byte order是大端在前(big endianness),而word order则是在两个寄存器储存的两个16位的字(word),如何组成32位的数据,不同的厂商会有不同的约定,这个就差异比较大了,需要查看手册。

NI的modbus I/O Server中,word order可以在高级选项中设置,但是byte order是没有地方可以设置的。

此外,NI还有一个比较坑爹的地方是它的modbus tcp连接不支持502以外的端口。也就是一个IP地址最多只能对应一个modbus,虽然可以靠Unit ID来进行区分,但是实际使用中也可能存在用不同端口区分设备的情况。

1[How LabVIEW Uses I/O Servers]( https://wwwnicom/zh-cn/innovations/white-papers/12/how-labview-uses-i-o-servershtml )

2 [Connect LabVIEW to Any PLC Using OPC](https://knowledgenicom/KnowledgeArticleDetailsid=kA03q000000x0MPCAY&l=zh-CN)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » labview网络通讯问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情