完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
***Labview的Modbus通信*** 我们在做labview的modbus通讯的时候通常使用的是,NI自带的DSC块或者是免费的自定义库。好处就是简单快捷稳定。当然任何事物是有两面性的,保证通用性和快捷性的同时带来的弊端是安装麻烦且不可灵活使用,如果遇到非标中的非标设备把你搞到头大。今天我介绍一下我平常使用的Modbus编程方式,并非标榜这种方法有多好,旨在分享和交流。
我通常使用VISA通过底层去编写Modbus通讯,今天我就来介绍一下如何用VISA实现Modbus通讯。 什么是Modbus通讯协议? ModBus是Modicon公司为其PLC通讯而开发的一种通讯协议。如今Modicon公司已经被施耐德收购成为了施耐德旗下品牌。从1979年问世至今,已经成为工业通讯领域的业界标准,最初的ModBus仅支持串口,分为RTU和ACSII两种信号传输模式(一般基于RS485串口通信媒介)。而随着时代的变迁,ModBus新增了TCP版本,可以通过以太网进行通讯,此外ModBus还有一个Modicon专用的ModBus Plus版本。 以上是从百度复制的但是我要让大家注意一点:RTU采用CRC校验,而ASCII采用LRC校验(关于这两种校验后续的文章中会介绍) 如何通过VISA编写Modbus呢? 关于VISA串口通讯我们之前的章节有介绍,这里就不过多讲解,今天我们以台达温控器为例,讲解。 本案例用到的软件:Labview 2018 VISA2018驱动 本案例用到的硬件:台达温控器 我们可知道其读取和输入寄存器地址,假定我们现在设定波特率是:9600 ,RTU ,CRC校验 站地址1读取通道1的值。 即发送:01 03 1000 0002 C0 CB 解释:H01即 :机器地址:1# 16进制 H03即 :读取功能吗 H1000:读取数据开始地址 H0002:读取数据长度 我们现在是读取2位 C0 CB :校验码 到这里不明白?没关系我给你看张图 看懂这个数据格式就可以了 Labview程序编写 注意:读取和写入都是16进制 。在这里我们要做个50毫秒的延时,目的是给硬件反应时间。打开串口要及时关闭。串口也不可重复打开,这样会造成系统报错。 现在ok了?不不不!!!我们不要忽略CRC校验(这个后续文章会将这里就不多做介绍)。 写在结尾的话 关于VIAS 实现 Modbus串口通信我们今天就介绍到这里。这个方法不一定是最快捷的方法,但是一定是最灵活的。大家可以自己试试哦。 |
|
|
|
只有小组成员才能发言,加入小组>>
876浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 01:37 , Processed in 0.531533 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号