如何在LabVIEW中使用Modbus通信
Posted yayun0516
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在LabVIEW中使用Modbus通信相关的知识,希望对你有一定的参考价值。
主要软件:主要软件版本: 2010
主要软件修正版本: N/A
次要软件: LabVIEW Development Systems>>LabVIEW Professional Development System
|
问题: (1) 什么是Modbus通信协议? (2) 在LabVIEW中需要安装什么软件可以进行Modbus通信? (3) 客户经常询问的一个问题:在我的理解中Modbus的地址形式应该是40202,...这样的,但是ni里面的地址好像全是6位的? (4) LabVIEW中,如何实现Modbus通信? (5) 当运行Modbus安装程序时,产生错误1550“许可证无效“,如何解决?
解答: (1) Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。在NI的产品中,Modbus主要用于实现PLC的通信。LabVIEW和PLC通信最简单的方式有两种: Modbus 或者 NI OPC Server. 前者需要PLC安装Modbus模块;后者需要对特定PLC设备支持才能保证正常连接, http://zone.ni.com/devzone/cda/tut/p/id/10857 网址为OPC Server支持的设备列表。在实现方面,Modbus实现方式的物理接口有以太网与串口两种,在LabVIEW编程中也得到了体现。 (2) 需要安装LabVIEW Datalogging and Supervisory Control Module,NI官方网站上现在只能搜索到DSC-2011以及DSC-8.6 Module的下载,客户可以点击下载后,将下载地址最后改为2010即可下载2010版本。 (3) Modbus地址为包含数据类型和偏移量的6个字符的数值。左边两个字符决定数据类型,右边四个字符是该数据类型中的序号。客户所描述的40001~4xxxx是美国modicon公司和ge公司plc使用的Modbus地址,它是基于1的地址,即同类元件的首地址为1。西门子plc的Modbus地址是基于0的地址。美国的Modbus地址左起第2位用来表示元件的类型,例如i0.0的Modbus地址为010001。因为数据类型已经包含在功能码中了,西门子的i0.0的Modbus地址实际上为000000,i2.0的Modbus地址为000016(或十六进制数16#0010),而不是010017。某些时候,Modbus地址的后4位被标记为偏置。这时,可能在第一位和第二位之间添0致使5位地址变为6位。比如,如果您的用户手册上建议您使用地址40001和某个寄存器通信,你可以在LabVIEW DSC或者在Modbus I/O服务器上使用400001来与之通信。 (4) 首先是如何创建Modbus I/O Server? 步骤如下:首先,新建一个工程,命名为”Modbus Server”。然后新建一个I/O Server,方法是在新建里面选择“I/O Server”,见图1。
![](http://digital.ni.com/public.nsf/$CXIV/ATTACH-AEEE-8PZA9U/$FILE/5.png)
![](http://digital.ni.com/public.nsf/$CXIV/ATTACH-AEEE-8PZACT/$FILE/7.png)
![](http://digital.ni.com/public.nsf/$CXIV/ATTACH-AEEE-8PZAD2/$FILE/8.png)
以上是关于如何在LabVIEW中使用Modbus通信的主要内容,如果未能解决你的问题,请参考以下文章