中国自动化学会专家咨询工作委员会指定宣传媒体
文摘详情
gkongbbs

Modbus-TCP总线GME-58L系列齿轮多圈编码器与西门子PLC1200 Smart200PLC使用教程

http://www.gkong.com 2025-04-19 15:05 上海了淼自动化技术合伙企业(有限合伙)

来源:http://www.liaomiao-automation.com/

image.png

上海了淼Modbus-TCP编码器支持五种通讯方式:Modbus-TCP、TCP、UDP、Web网页设置、RS485-ModbusRTU。

了淼编码器网络参数默认IP地址为192.168.0.32,默认子网掩码255.255.255.0,默认网关地址为192.168.0.1。编码器使用以太网通讯周期最短能做到2ms完成数据输出,使用西门子PLC做主站连接时,PLC更新数据时间能做到10ms左右更新数据,此时间参数与PLC编程时的轮询方式有关。

1.Modbus-TCP通讯介绍

上海了淼Modbus-TCP编码器可以使用Modbus-TCP协议进行通讯,主从问询的方式读取编码器位置值、转速值、和时间戳等编码器数据。

Modbus-TCP是基于以太网TCP/IP的modbus协议,可以使MODBUS-RTU协议运行于以太网。MODBUS-TCP使用TCP/IP以太网在站点间传送MODBUS报文,MODBUS-TCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUS-TCP通信报文包在以太网TCP/IP数据包中。与传统的串口方式,MODBUS-TCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址。

image.png

image.png

上海了淼Modbus-TCP编码器默认IP地址为192.168.0.32,默认子网掩码255.255.255.0,默认网关地址为192.168.0.1。用于Modbus-TCP通讯端口号为502,编码器单元ID为32,编码器作为TCP服务器,PLC等主站作为TCP客户机,以C/S方式通讯。

(1)Modbus-TCP协议简介

编码器使用标准的Modbus-TCP协议,使用0x03(读保持寄存器)功能码来读取编码器内部寄存器数据。可以通过读取指令一次性读取全部的20个寄存器。单个寄存器数据格式为16进制数据,有些编码器参数需要2个寄存合成数据,举例:编码器的位置值是一个32bit无符号数据,寄存器0和寄存器1这两个来表示编码器位置值数据,寄存器0为位置值高16位数据,寄存器1为位置值低16位数据。

编码器使用0x06(写单个寄存器)和0x10(写入多个寄存器)功能码来写入相关编码器参数,举例:写入旋转方向寄存器10时需要用0x06(写单个寄存器)功能码;写入预设值参数时需要用0x10(写入多个寄存器)功能码。

请注意:写入指令时,编码器需要将数据写入flash内存中,flash内存擦写次数100万次,频繁写入会影响编码器寿命。

(2)Modbus-TCP寄存器介绍

寄存器地址/

西门子PLC地址

数据

范围

读/写

方式

功能说明

0/400001

Bit16-31

只读

位置值:无符号32位,编码器当前的位置数据。单位:脉冲步数。

举例:读取编码器位置值为164005,则编码器当前圈数为20圈(圈数=164005/8192(默认单圈分辨率)取整),圈内脉冲数为165(圈内数=164005%8192(默认单圈分辨率)取余)。

1/400002

Bit0-15

2/400003

Bit16-31

只读

转速值:有符号32位,编码器当前转速,转速含小数部分扩大10000倍,单位为rpm。

举例:读取编码器转速数值为 -30607845,则当前转速=-30607845/10000=-3060.7845rpm。

3/400004

Bit0-15

4/400005

Bit16-31

只读

时间戳:无符号32位,时间标记,编码器内部生成,单位为ms,可以用来做位置值更新标记。

5/400006

Bit0-15

6/400007

Bit0-15

只读

故障代码:无符号16位,内部检测的故障码。

7/400008

Bit16-31

只读

物理量程:无符号32位,编码器所能检测到最大量程范围,由编码器硬件决定,无法修改;数值=物理极限圈数*单圈分辨率,当圈数=65536圈,单圈分辨率=65536步时,此数值为4294967296。

8/400009

Bit0-15

9/400010

Bit0-15

只读

预留

10/400011

Bit0-15

读/写

旋转方向:无符号16位,0=CW顺时针旋转数值增加;1=CCW逆时针旋转数值增加

11/400012

Bit16-31

读/写

单圈分辨率:无符号32位,设置圈内分辨率,默认8192步,可设置:256/512/1024/2048/4096/8192/

16384/32768/65536

12/400013

Bit0-15

13/400014

Bit16-31

读/写

缩放量程:无符号32位,在物理量程范围内,用于可以指定缩放量程,举例:

若物理量程=3355432(4096圈*圈内分辨率8192),

设置缩放量程1024圈时将数据8388608(1024圈*圈内分辨率8192)写入即可。设置预防圈数只能为2的n次方。

14/400015

Bit0-15

15/400016

Bit16-31

读/写

预设值:无符号32位,用来指定编码器当前位置,写入数值不能超过缩放量程。

16/400017

Bit0-15

17/400018

Bit0-15

只写

重启:写入数据1时重启编码器。

18/400019

Bit0-15

只读

编码器软件版本号:无符号16位

19/400020

Bit0-15

只读

内部温度:有符号16位 ,编码器内部温度℃

2.编码器TCP通讯

上海了淼Modbus-TCP编码器可以通过以太网TCP/IP协议与控制主机进行通讯,双方使用ASCII格式的数据报文。

(1)编码器TCP简介

上海了淼Modbus-TCP编码器默认IP地址为192.168.0.32,默认子网掩码255.255.255.0,默认网关地址为192.168.0.1。用于TCP/IP通讯端口号为6000。PC等控制器与编码器要处于同一个局域网内,可以使用Windos电脑的DOS命令提示符的ping指令检查电脑与编码器之间的网络连接。可以使用网络调试助手来发送TCP指令测试编码器。

(2)编码器TCP指令定义

指令

说明

RUN!

命令编码器输出一次位置信息,按照设定格式输出编码器位置信息,可以修改编码器输出位置信息格式,按照ASCII输出或者BIN二进制输出。

GET_Position

读取位置值,举例POSITION=23570

GET_Velocity

读取编码器转速,扩大10000倍,举例VELOCITY=-933737

GET_FaultCode

读取故障码,没有故障时为0。举例FaultCode=0x0000

GET_TotalPhysical

读取编码器物理总量程,举例TotalPhysical=536870912

GET_CountingDir

读取旋转方向,

CW=顺时针(默认);CCW=逆时针。举例CountingDir=CW

GET_SingleResolution

读取单圈分辨率,举例SingleResolution=8192。

GET_UserTotalScaledRes

读取用户缩放总量程,举例UserTotalScaledRes=536870912

GET_SoftVer

读取编码器版本号,举例SoftVer=19.4

GET_Temperature

读取编码器内部温度,单位℃,举例Temperature=36

GET_CycleTime

读取自动循环时间,单位ms,默认10ms,当发送模式为周期发送时生效。举例CycleTime=10

GET_SendMode

读取编码器发送模式,

Polled=主从问答模式(默认),

Cyclic = 自动周期发送模式,

ChangeState = 检测到位置值改变时发送一次。

举例SendMode=Polled

GET_OutputMode

读取输出模式,

PositionPlus:全部输出数据(默认),位置值+转速值+时间戳。

Position:简单输出数据,位置值。

举例OutputMode=PositionPlus

GET_OutputType

读取输出数据类型,

ASCII :POSITION=18613 VELOCITY=-18 TIMESTAMP=6521005,(默认)

ASCII_SHORT:18613 -18 6521005,

BINARY:00 00 53 DB 00 00 00 09 00 80 6A C8 输出二进制格式数据。

举例OutputType=ASCII

GET_IP

读取编码器IP地址,举例IP=192.168.0.32

GET_NetMask

读取编码器子网掩码,举例NetMask=255.255.255.0

GET_Gateway

读取编码器网关地址,举例Gateway=192.168.0.1

GET_MAC

读取编码器MAC地址,举例MAC=00:17:BC:10:00:01

SET_CountingDir=

设置旋转方向,

顺时针:SET_CountingDir=CW;

逆时针:SET_CountingDir=CCW

SET_SingleResolution=

设置单圈分辨率,

数据范围:256,512,1024,2048,4096,8192(默认),16384,32768,65536

举例SET_SingleResolution=8192

SET_UserTotalScaledRes=

设置缩放总量程,缩放总量程不能大于物理总量程,设置总量程圈数只能为2的指数倍,如256圈编码器,设置缩放量程为16圈,

16圈*8192单圈分辨率=131072,SET_UserTotalScaledRes=131072

SET_PresetValue=

设置预设值,指定编码器当前位置值,

举例设置当前位置为0,SET_PresetValue=0

SET_SendMode=

设置发送模式,

Polled=主从问答模式,

Cyclic = 自动周期发送模式,

ChangeState = 检测到位置值改变时发送一次。

举例SET_SendMode=Polled

SET_OutputMode=

设置输出模式,

PositionPlus:全部输出数据,位置值+转速值+时间戳。

Position:简单输出数据,位置值。

举例SET_OutputMode=PositionPlus

SET_OutputType=

设置输出格式,

ASCII :POSITION=18613 VELOCITY=-18 TIMESTAMP=6521005,

ASCII_SHORT:18613 -18 6521005,

BINARY:00 00 53 DB 00 00 00 09 00 80 6A C8 输出二进制格式数据。

举例SET_OutputType=ASCII

SET_CycleTime=

设置周期发送时间,单位ms,

举例SET_CycleTime=100

SET_IP=

设置IP地址,

举例SET_IP=192.168.0.32,重启生效

SET_NetMask=

设置子网掩码地址,

举例SET_NetMask=255.255.255.0,重启生效

SET_Gateway=

设置网关地址,

举例SET_Gateway=192.168.0.1,重启生效

Reboot

设置编码器重启,举例Reboot

(3)编码器TCP指令异常应答

响应指令

ERROR:

发送错误的指令,指令格式不正确,设置参数不合理。

举例:

发→◇SET_CountingDir=CWCCC

收←◆ERROR:CWCCC

SUCCESS:

设置参数正确。

举例:

发→◇SET_CountingDir=CW

收←◆SUCCESS:CW

3.UDP通讯

上海了淼Modbus-TCP编码器可以通过以太网UDP协议与控制主机进行通讯,UDP是不可靠连接,因此只能使用主从问询方式来应答,不支持自动周期发送和设置编码器参数。

(1)UDP通讯设置

上海了淼Modbus-TCP编码器默认IP地址为192.168.0.32,默认子网掩码255.255.255.0,默认网关地址为192.168.0.1。用于UDP通讯端口号为5000。

(2)UDP通讯指令定义

指令

说明

RUN!

命令编码器输出一次位置信息,按照设定格式输出编码器位置信息,可以修改编码器输出位置信息格式,按照ASCII输出或者BIN二进制输出。

GET_Position

读取位置值,举例POSITION=23570

GET_Velocity

读取编码器转速,扩大10000倍,举例VELOCITY=-933737

GET_FaultCode

读取故障码,没有故障时为0。举例FaultCode=0x0000

GET_TotalPhysical

读取编码器物理总量程,举例TotalPhysical=536870912

GET_CountingDir

读取旋转方向,

CW=顺时针(默认);CCW=逆时针。举例CountingDir=CW

GET_SingleResolution

读取单圈分辨率,举例SingleResolution=8192。

GET_UserTotalScaledRes

读取用户缩放总量程,举例UserTotalScaledRes=536870912

GET_SoftVer

读取编码器版本号,举例SoftVer=19.4

GET_Temperature

读取编码器内部温度,单位℃,举例Temperature=36

GET_CycleTime

读取自动循环时间,单位ms,默认10ms,当发送模式为周期发送时生效。举例CycleTime=10

GET_SendMode

读取编码器发送模式,

Polled=主从问答模式(默认),

Cyclic = 自动周期发送模式,

ChangeState = 检测到位置值改变时发送一次。

举例SendMode=Polled

GET_OutputMode

读取输出模式,

PositionPlus:全部输出数据(默认),位置值+转速值+时间戳。

Position:简单输出数据,位置值。

举例OutputMode=PositionPlus

GET_OutputType

读取输出数据类型,

ASCII :POSITION=18613 VELOCITY=-18 TIMESTAMP=6521005,(默认)

ASCII_SHORT:18613 -18 6521005,

BINARY:00 00 53 DB 00 00 00 09 00 80 6A C8 输出二进制格式数据。

举例OutputType=ASCII

GET_IP

读取编码器IP地址,举例IP=192.168.0.32

GET_NetMask

读取编码器子网掩码,举例NetMask=255.255.255.0

GET_Gateway

读取编码器网关地址,举例Gateway=192.168.0.1

GET_MAC

读取编码器MAC地址,举例MAC=00:17:BC:10:00:01

4.Web网络参数设置

上海了淼Modbus-TCP编码器可以通过Web网页方式设置编码器网络参数,网络参数修改后重启编码器开始生效。

第一步:编码器与电脑在同一个局域网段内。

第二步:在浏览器地址栏中输入编码器地址http://192.168.0.32(默认出厂IP地址)

第三步:在打开的页面中核对MAC地址与编码器是否一致,然后修改IP地址、子网掩码、网关地址。确认无误后点击保存并重启。新网络参数生效。

image.png

5.RS485-ModbusRTU通讯

上海了淼Modbus-TCP编码器可以通过RS485接口使用Modbus-RTU协议读取和设置编码器参数。当以太网网络参数无法找回时,可以通过RS485通讯将以太网参数重置为出厂值。

(1)RS485通讯参数

Modbus-RTU格式《十六进制》

设备默认地址为32(0x20) (可以软件修改)

默认串口参数:

波特率:19200bps

数据位:8位

校验位:无校验

控制流:无控制流

停止位:1位

(2)Modbus-RTU寄存器定义

地址(HEX)/西门子PLC地址

功能

读/写

参数范围

说明

默认值

0x0000

/40001

软件版本

R

0~65535

软件版本号

0x0001

/40002

本机站号

R/W

0~255

本机通讯地址,

32(0x20)

0x0002

/40003

多圈位置

R

0~65535

最大为65535,16进制无符号

0x0003

/40004

单圈位置

R

0~65535

单圈角度,16进制无符号

0x0004

/40005

旋转转速

R

-32768~+32767

单位:转/分钟,16进制有符号

0x0005

/40006

通讯波特率

R/W

19200

通讯波特率

1200,2400,4800,9600,19200,38400,11520,25600

11520表示115200bps

25600表示256000bps

19200

0x0006

/40007

设置旋转方向

R/W

0~1

0:逆时针角度增加

1:顺时针角度增加

1

0x0007

/40008

设置零点

W

0~1

1:写入1 将当前位置设为0圈0°;

2:写入2 将预设值生效一次。

注意:设置零点时编码器需要保持静止,不可频繁设置零点,影响编码器使用寿命。

0

0x0008

/40009

传感器内部温度

R

-5500~+17500

温度数据扩大100倍

0x0009

/40010

故障代码

R

0~65535

0:编码器无故障

0x000A

/40011

寄存器

R

0x000B

/40012

预留

R/W

0~1

1

0x000C

/40013

机械圈数

R

0~18

机械可识别圈数,是该编码器能够识别的最大圈数。

如0表示20,1圈即单圈编码器。

18表示218,262144圈。

0x000D

/40014

使用圈数

R/W

0~机械圈数

设置实际使用多圈位数,如12表示212,4096圈。

最大使用圈数为机械圈数。

机械圈数

0x000E

/40015

设置单圈分辨率

R/W

8~16

1、设置单圈分辨率,13表示213,13位分辨率;

13

0x000F

/40016

设置当前机械位置圈数

W

0~65535

设置当前机械位置的多圈值,该值小于使用圈数,例如使用圈数为4096圈,此处设置范围0~4095

预设值

0x0010

/40017

设置当前机械位置角度值

W

0~65535

设置当前机械位置的单圈角度值,该值小于单圈最大值,例如使用单圈分辨率为8192,此处设置范围0~8191

预设值

0x0011

/40018

以太网参数恢复出厂值

W/R

10

写入数据10,将以太网参数重置为出厂值,

IP地址:192.168.0.32,

子网掩码:255.255.255.0

网关地址:192.168.0.1

0

0x0012

/40019

IP地址高16位

W/R

0~65535

编码器IP地址前2位

默认值为0xC0A8,

0xC0=192(十进制)

0xA8=168(十进制)

0x0013

/40020

IP地址低16位

W/R

0~65535

编码器IP地址后2位

默认值0x0020

0x00=0(十进制)

0x20=32(十进制)

0x0014

/40021

子网掩码高16位

W/R

0~65535

编码器子网掩码地址前2位

默认值为0xFFFF,

0xFF=255(十进制)

0xFF=255(十进制)

0x0015

/40022

子网掩码低16位

W/R

0~65535

编码器子网掩码地址后2位

默认值为0xFF00,

0xFF=255(十进制)

0x00=0(十进制)

0x0016

/40023

设备重启

W

0~1

1:写入1设备重新启动

0x0017

/40024

转速整数部分

R

-32768~+32767

精确转速 = 转速整数部分+(转速小数部分/10000);单位:转/分钟,16进制有符号

0x0018

/40025

转速小数部分

R

-9999~+9999

0x0019

/40026

网关地址高16位

W/R

0~65535

编码器网关地址前2位

默认值为0xC0A8,

0xC0=192(十进制)

0xA8=168(十进制)

0x001A

/40027

网关地址低16位

W/R

0~65535

编码器网关地址后2位

默认值0x0001

0x00=0(十进制)

0x01=1(十进制)

0x0022

/40035

MAC地址1

R

0~65535

编码器MAC地址1

举例:0x0017

0x0023

/40036

MAC地址2

R

0~65535

编码器MAC地址2

举例:0xBC10

0x0024

/40037

MAC地址3

R

0~65535

编码器MAC地址3

举例:0x0001

从Modbus-RTU中读取到的位置数据合成方式:

位置值=多圈位置*8192(默认分辨率)+单圈位置,单位:脉冲步数。

6.网络参数设置教程

(1)配置设备处于同一个局域网

上海了淼Modbus-TCP编码器出厂默认IP为192.168.0.32,子网掩码为255.255.255.0,网关地址:192.168.0.1。

编码器接好电源线和网线,配置变成电脑和PLC处于同一个以太网网段内。

电脑端在:控制面板\网络和 Internet\网络连接中 修改本地连接IP地址到相同网段。

image.png

(2)Ping指令检查编码器的以太网连接

使用Windos电脑的DOS命令提示符的ping指令检查电脑与编码器之间的网络连接。

image.png

(3)修改编码器以太网IP网络参数

当需要修改编码器的网络IP地址时,推荐使用Web网页进行修改,

在浏览器地址栏中输入编码器地址http://192.168.0.32(默认出厂IP地址),在打开的页面中核对MAC地址与编码器是否一致,然后按照正确的以太网规范修改IP地址、子网掩码、网关地址。确认无误后点击保存并重启。新网络参数生效。

image.png

(4)按照编码器MAC地址查找局域网IP

同一个局域网内有多个不同IP地址的了淼编码器时,可以用编码器铭牌上的MAC物理地址来区分确认编码器IP地址。

使用Windos电脑的DOS命令提示符窗口,

第一步,输入命令:for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.0.%i |find /i "TTL"

电脑将按照指示在192.168.0网段内从192.168.0.1~192.168.0.255中自动遍历ping检查。

image.png

第二步,输入命令:arp -a

找出遍历到的IP地址和对应的MAC物理地址。

image.png

7.Modbus-TCP编码器与S7-1210 PLC组态教程

上海了淼编码器可以与西门子S7-1212 PLC使用Modbus-TCP协议进行通讯,首先将编码器和PLC的电源线和以太网线连接好。

(1)在电脑上打开西门子博途软件新建PLC项目工程,设置PLC常规参数,启用系统存储字节和启用时钟存储器字节,后续编程要用到系统定时器作为触发信号。

image.png

(2)新建MODBUS-TCP通讯模块MB_CLIENT

image.png

(3)创建Encoder_Modbus-TCP通讯数据块。

image.png

(4)在新建的Encoder_Modbus-TCP通讯数据块中修改属性,取消优化的块访问

image.png

(5)在Encoder_Modbus-TCP数据块中创建TCON_IP_V4类型的Connect变量组,并配置网络连接参数变量初始值。

image.png

(6)在Encoder_Modbus-TCP数据块中创建Struct类型的读取编码器数据变量组Read_Buff,并新建可以读取的编码器Modbus-TCP寄存器。

image.png

(7)在Encoder_Modbus-TCP数据块中创建Struct类型的写入编码器数据变量组Write_Buff,并新建可以写入的编码器Modbus-TCP寄存器。

image.png

(8)编写modbus-TCP读取程序,以10Hz的频次读取编码器数据

image.png

(9)分别编译数据块和主程序,并下载进PLC中,在线监控读取到的编码器数据。

image.png

image.png

(10)设置编码器预设值

image.png

(11)设置编码器旋转方向

image.png

8.Modbus-TCP编码器TCP/IP通讯

上海了淼Modbus-TCP编码器默认IP地址为192.168.0.32,默认子网掩码255.255.255.0,默认网关地址为192.168.0.1。用于TCP/IP通讯端口号为6000。编码器与电脑处于同一个网段内,打开网络收发调试助手进行通讯。

image.png

9.Modbus-TCP编码器UDP通讯

上海了淼Modbus-TCP编码器默认IP地址为192.168.0.32,默认子网掩码255.255.255.0,默认网关地址为192.168.0.1。用于UDP通讯端口号为5000。编码器与电脑处于同一个网段内,打开网络收发调试助手进行通讯。

image.png

10.Modbus-TCP编码器与Smart 200 PLC组态教程

(1)使用STEP 7-MicroWIN SMART新建空白PLC工程

image.png

(2)编写PLC程序

image.png

image.png

image.png

(3)创建符号表,监控编码器数据

image.png

(4)设置编码器预设值

image.png

注意:由于Flash有擦写寿命,不可以频繁对编码器进行清零设置或预设值。

(5)设置编码器旋转方向

image.png

版权所有 中华工控网 Copyright©2025 Gkong.com, All Rights Reserved