EN
首页 > 新闻中心 > 技术学习分享 > 入门篇十八:力为控制技... 技术学习分享

入门篇十八:力为控制技术运动控制器MODBUS通讯

发布时间:2025-08-13

一、材料准备与接线参考

1)电脑,安装BASIC-IDE软件

2)PMC206R控制器2

3)24V直流电源

4)网线

5)连接线

6)交换机

 二、MODBUS 通讯协议简介

  MODBUS协议是一个通用的标准协议,几乎所有的控制设备和智能化仪表都支持MODBUS协议,这样不同厂家的设备之间就可以互相通讯,连接到同一个控制网络。

  MODBUS的串行传输模式分为:RTU模式和ASCII模式,RTU模式通讯传输的数据为二进制数据,ASCII模式通讯传输的数据为ASCII码,RTU模式的通讯速率比ASCII模式快。

  MODBUS发展至今包含好几种协议模式:控制器的串口和网口的默认协议均为MODBUS协议,其中串口为MODBUS_RTU协议,网口为MODBUS_TCP协议。

  控制器支持MODBUS_RTU模式的串口:RS232RS485,当从串口接收到数据时,会直接根据报文中的数据进行控制。

  控制器支持的网口协议MODBUS_TCP接口:EtherNET网口。

  网口主要用于与PC与人机界面通讯。

  控制器的串口和网口在 MODBUS协议下读写数据,使用MODBUS相关指令读写,数据保存在MODBUS寄存器中传递。也可以通过指令将串口或网口配置为无协议模式,采用自定义通讯指令读写数据。

  PMC206B脉冲型控制器各接口配置如下:

通讯接口包含RS232RS485,以太网,U盘,CAN接口。

自带6个脉冲轴,面板上包含6个脉冲接口和6个编码器接口。

  支持使用扩展模块扩展至10个脉冲轴,支持多达10轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等;采用优化的网络通讯协议可以实现实时的运动控制。

  应用程序可以使用BASIC-IDE软件或VCVBVSC++LabVIEWC#等软件来开发。

 1、三类串口说明

  RS232串口常用于连接PC或人机界面

  RS485串口常用于与控制装置和智能仪表的通讯控制

RS232

  控制器的RS232接口可以做MODBUS主站或从站,支持1个主站发送数据,1个从站接收数据。做主站时,可连接驱动器、变频器、温控仪等,进行数据读出与写入的控制。做从站时,可连接人机界面,用来监控运行状态,常用于连接PC或人机界面。

控制器的RS232接口采用DB9公头,使用相应的连接线连接两个设备。

RS232的标准接线只需要三根线即可,2根数据信号TXDRXD1根地线EGND,数据信号TXDRXD交叉连接,再将EGND连到一起。

  接线参考如下:

RS485

主要提供主/从站的多台通讯设备联机,理论上支持128个节点。做主站时,可连接驱动器、变频器、温控仪等,进行数据读出与写入的控制;做从站时,能与PLC通讯,可连接人机界面,用来监控运行状态。

RS485接口采用差分传输方式,通过判断AB之间的电压差来确定是高电平或低电平。

  

控制器的RS485接口采用了简易接线方式,如下图所示,控制器的485A485BEGND地线, 分别接第一个从站的AB、地线, 然后再接第二个从站的AB、地线(A A B B,信号共地),并且控制器和最后一个从站的485A 485B 要并联120 欧电阻防止信号反射,线缆需要使用屏蔽双绞线,避免信号干扰,每个节点支线的距离要小于3m

2、串口参数

  连接串口使用:串口通常可选RS232串口或RS485串口,不管哪种串口,除了端口号和接线方法有所不同,默认参数与操作指令都是相同的。

  串口默认参数为:波特率38400,数据位8,停止位1,校验位无,采用SETCOM指令配置串口参数。控制器重新上电后,SETCOM参数会还原成默认值,所以请在程序开头写SETCOM设置。

  控制器所有串口的MODBUS协议站号ADDRESS1-127,缺省=1

  在一个MODBUS网络上的所有设备都必须选择相同的传输模式和串口参数,否则无法通讯。

  控制器默认PORT1(COM1)RS232串口,PORT2(COM2)RS485串口,支持在线命令窗口发送?*setcom打印查看。

  SETCOM指令除了可以配置串口的通讯基本参数外,还可以选择参数配置通讯协议,设置控制器为主端设备还是从端设备,默认为从端,还可以开启自定义通讯模式(mode=0无协议模式)

  语法:SETCOM (baudrate,databits,stopbits,parity,port[,mode] [,variable] [,timeout])

mode参数选择协议:

  1.与触摸屏通讯时,mode参数选择协议:4

  Port1setcom(9600,8,1,0,1,4,2,1000)

  2.控制器通过RS485做主站时,mode参数选择协议:14

Port2setcom(38400,8,1,0,2,14,2,1000)

3、网口参数

  控制器网口支持MODBUS-TCP协议,出厂默认IP地址为192.168.1.11,可使用IP_ADDRESS指令修改IP地址或在修改IP地址窗口修改,修改一次永久生效。

  控制器至少包含2个网口通道,可在在线命令发送?*port打印查看,如下图,网口的端口号为502

不同的控制器可通过网口互联,EtherNET网线接口只有一个,可使用交换机,网口互联的前提是两个控制器均有CONNECT通道,用MODBUSM_DES2指令开启连接。

4、串口/网口读写

  MODBUS通讯通过功能码告诉被寻址到的终端执行何种功能,如运行命令、读取监控状态、修改参数、读取参数等,MODBUS协议制定了相关的功能码。

控制器也可直接使用MODBUS通讯功能码,为方便使用,将一些常用的功能码直接封装为Basic指令,如下表Basic指令对应功能码。

串口和网口通讯的连接方法不同,读写都是使用同一套指令,数据由MODBUS寄存器存储。

MODBUS寄存器

  MODBUS通讯的数据使用MODBUS寄存器存储,控制器的MODBUS寄存器符合MODBUS标准通讯协议,分为位寄存器和字寄存器两类。

  位寄存器:MODBUS_BIT(布尔型)

  字寄存器:包含MODBUS_REG(16位整型)MODBUS_LONG(32位整型)MODBUS_IEEE(32位浮点型)MODBUS_STRING(8位字节型)

  控制器中MODBUS字寄存器占用同一片系统变量空间,其中一个LONG占用两个REG地址,一个IEEE也占用两个REG地址,使用时要注意错开字寄存器编号地址。

  所以要注意MODBUS_REGMODBUS_LONGMODBUS_IEEE地址在用户应用程序中不能重叠。

控制器的MODBUS存储空间安排如下:

MODBUS读写相关指令

MODBUS/写语法格式相同,如下所示:

MODBUSM_4XGET (startreg, num, local_reg)

       startreg:对端的寄存器起始编号,从0开始

       num:寄存器个数

       local_reg:从本地系统MODBUS寄存器中取值,起始编号

MODBUSM_4XSET (startreg, num, local_reg)

       startreg:对端的寄存器起始编号,从0开始

       num:寄存器个数

       local_reg:从本地系统MODBUS寄存器中取值,起始编号

使用示例:

  MODBUSM_4XGET(0,10,100)      '把对端位寄存器0~9复制到通讯本地的寄存器100~109

MODBUSM_4XSET(0,10,100)     '把本地位寄存器100~109设置到通讯对端的寄存器0~9

④建立MODBUS通讯

(1)串口

MODBUSM_DES (address[,port])

ADDRESS1 = MODBUSM_DES([port])

address:对端的modbus协议站号

port:当前modbus主通讯的port

        

(2)网口

MODBUSM_DES2 (id,port,"desipaddress",[timer])

id:对方控制器的MODBUS从端ID,缺省8

port:支持两种模式,?*PORT确认通道号及模式

               ETH时,作为MODBUS_TCP主端通道

               CONNECT时,作为控制器互联通道

       desipaddress:字符串, 对方控制器的IP地址

        timer:消息超时时间设置,缺省1000ms

5、串口通讯例程

  控制器RS485做主站与从站的通讯。

主站程序:

从站程序:

运行结果

1MODBUSM_4XGET读取:读取从站MODBUSM_REG寄存器1-1010个数据到主站的 MODBUSM_REG寄存器10-19

从站数据:

主站初始数据均为0,读取完成主站数据:读取了从站的9个数据。

2MODBUSM_4XSET写入:将主站MODBUSM_REG寄存器30-4011个数据写入从站的 MODBUSM_REG寄存器10-20

主站数据:

从站数据:

6、网口通讯例程

采用两个控制器通过交换机网口互联。

  主端控制器IP192.168.1.12

  从端控制器IP192.168.1.11

  分别使用BASIC-IDE软件连接这两个控制器,接线参考如下,采用ETH网口通道12,下载程序后查看运行效果。

主端程序:

从端程序:

运行效果

主端先将数据传给从端,修改主站数据后,再从从端获取数据,获取数据成功,IF条件不满足,打印不执行。
  从端接受来自主端的数据,改变了MODBUS_REG(0)的值,并循环打印。

7、网口互联例程

  采用两个控制器通过交换机网口互联。

  主端控制器IP192.168.1.12

  从端控制器IP192.168.1.11

分别使用BASIC-IDE软件连接这两个控制器,采用CONNECT互联通道30,必须两个控制器都包含CONNECT通道才可以正常通讯,下载程序后查看运行效果。

主端程序:

从端程序:

运行效果:

与网口通讯例程相同,主端先将数据传给从端,修改主站数据后,再从从端获取数据,获取数据成功,IF条件不满足,打印不执行。
  从端接受来自主端的数据,改变了MODBUS_REG(0)的值,并循环打印。

演示视频链接:入门篇十八:力为控制技术运动控制器MODBUS通讯

在线客服