关于Labview MODBUS通讯问题

2019-07-17 08:03发布

labview得到ACS880变频器的参数,大致做了一下,很多指令暂时还找不到,不知道这样的思路对不对。我的想法就是先创建SERVE IO ,制作两个VI.一个作为主机VI,用来发送各种指令。另一个作为从机VI.比如在我的从机VI里面,根据ACS880里面所说,速度的地址应该是400102,那么我从机里面那个开始地址设置的是不是应该是101(因为400001对应的是0)。因为ACS880硬件有一个端口是用来连接MODBUS的,是不是就说明速度的数据会传送到这个寄存器里面,然后我是不是可以直接取400102里面的数据,然后在主机VI里面显示出来,本来初学者,真的不太清楚,希望大神帮忙解决,不胜感激,如果可以的话,希望大神能联系我的微信 yqchenhe  万分感激
LABVIEW.zip 下载积分: 积分 -1 分
50.15 KB, 下载次数: 77, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
kevin1232
1楼-- · 2019-07-18 07:14
zhouyezuishuai 发表于 2018-4-12 10:05
你这个变频器我没用过,我之前用的是ABB的变频器,走MODBUS协议就是这样通讯的 建议你找变频器官方电话联系跟他们要一份通讯协议,变频器的通讯一般就是读取频率设定频率,只要知道地址就可以

我这个ACS880就是ABB变频器,有个问题就是,我试了2种方法,一种是用VISA,VISA里面有输入BUFFER的地方,可以输入一些指令。另一种就是用MODBUS MASTER,但是这个MODBUS MASTER没有输入指令的地方呀,都是输入地址什么的。我想请问一下,这个VISA也是根据RTU的吗,VISA跟MODBUS 的关系,不太清楚诶
zhouyezuishuai
2楼-- · 2019-07-18 11:39
 精彩回答 2  元偷偷看……
zhouyezuishuai
3楼-- · 2019-07-18 12:29
kevin1232 发表于 2018-4-12 17:28
我这个ACS880就是ABB变频器,有个问题就是,我试了2种方法,一种是用VISA,VISA里面有输入BUFFER的地方,可以输入一些指令。另一种就是用MODBUS MASTER,但是这个MODBUS MASTER没有输入指令的地方呀,都是输入地址什么的。我想请问一下,这个VISA也是根据RTU的吗,VISA跟MODBUS 的关系,不太清楚诶 ...

就是用VISA,16进制写入  你需要找到通讯协议,知道具体的寄存器地址 ABB的变频器就是标准的MODBUS协议。03读取,06写入
wyq95361977
4楼-- · 2019-07-18 13:02
安装DSC工具后有Modbus控件,随便用
kevin1232
5楼-- · 2019-07-18 18:02
zhouyezuishuai 发表于 2018-4-12 19:34
就是用VISA,16进制写入  你需要找到通讯协议,知道具体的寄存器地址 ABB的变频器就是标准的MODBUS协议。03读取,06写入

您好,万分感谢您给我的解答,我尝试了一下这样的修改,如果抛开地址的问题的话,我想得到变频器返回的2个参数,速度和电压。速度放在01从站,电压放在02从站。这样的编程可以实现嘛。
因为在输入指令的地方我输入的数量是1,会不会对得到的参数造成一些印象,希望大佬解惑,万分感谢
3123123.PNG
zhouyezuishuai
6楼-- · 2019-07-18 18:37
你还是没搞懂MODBUS这段协议的意思 我给你简单分析下,比如我读0001开始的3个数据,设备地址是02,那么我需要发送的指令如下: 0203 0001 0003 5438   其中前面两个字节“0203” 02——设备地址,03——读取码  后面两个字节 0001——寄存器地址,就是你要读取的寄存器的起始地址,接下来的0003——要读取的寄存器数量,如果要读一个,就是0001, 最后的5438——CRC16校验码  crc16校验的VI我上传附件,你自己调用,我先提醒你后面你可能需要16进制的10进制之间相互转换的,如果想不到办法就找找我以前的帖子,一个从零开始学LabVIEW那个我传过一批VI,里面就有你需要的全部VI

一周热门 更多>