Modbus上位机连接禾川PLC Q1-1300-D

使用modbus协议连接禾川plc具体步骤:
使用网口连接PLC的port1或者port2,手册中有对网口1和2的网络地址说明.
网口1:192.168.188.100
网口2:192.168.88.100
端口号自己设置,一般为502。
具体说明:所有PLC的ModBus协议都是对线圈和寄存器进行操作,本文主要对禾川PLC的寄存器进行操作说明。
禾川PLC的请求报文格式中无论是MB还是MD格式地址,都需要转化成MW地址。具体是,MD/2是MW,MB*2是MW。
MW是一个16位数据,16进制位 0X 00 00格式,主要有INT、WORD
MB是一个8位数据 0X00格式,主要有Byte
MD是一个32位格式地址主要有Double Word和real。

本文主要对real进行讲解

real是一个32位浮点型数据

本文讲解的是通过串口调试助手对plc进行操作

读MD2200操作发送报文形式

发送:97 76 00 00 00 06 04 04 04 4C 00 02
具体格式如下图,MD转化为MW是1100转化为16进制是044C,读取数据个数是两个,也就是00 02。若MD2200位置值为4,
则使用指令读到的数据为:
97 76 00 00 00 07 04 04 04 00 00 40 80

04是后面有4位数据
其中40 80 00 00就是MD2200的值

这个值使用C++代码可以转化为10进制浮点数

	unsigned char s[4];
	float* p;
	float num;
	s[0] = 0x96;
	s[1] = 0x41;
	s[2] = 0x10;
	s[3] = 0x0E;
	p = (float*)s;
	num = *p;

写MD2200操作发送报文形式

发送:97 76 00 00 00 06 04 10 04 4C 00 02 04 00 00 40 80
10写多个寄存器,一个寄存器是16位,但是real格式是32位,所以需要写两个寄存器。
04 4C是起始地址,00 02是写寄存器个数
04是后面数据个数
00 00 40 80就是需要发送的数据也是将高16位和低16位进行调换。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布丁小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值