PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 37960|回复: 0

[三菱] 经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏...

[复制链接]
发表于 2024-5-24 14:25:06 | 显示全部楼层 |阅读模式


XPLC006E功能简介



0

XPLC006E是正运动运动控制器推出的一款多轴经济型EtherCAT总线运动控制器,XPLC系列运动控制器可应用于各种需要脱机或联机运行的场合。



XPLC006E自带6个电机轴,最多12轴运动控制(含虚拟轴数),支持12轴直线插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等功能。

XPLC006E支持多任务同时运行,同时可以在PC上直接仿真运行,编程方式多种可选,支持ZDevelop软件的Basic/PLC梯形图/HMI组态和常用上位机软件编程。

XPLC006E只支持EtherCAT总线轴,不支持脉冲轴和编码器轴。采用EtherCAT总线与驱动器通讯,1ms的刷新周期。

XPLC006E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。



→此款产品有XPLC004E、XPLC006E、XPLC008E三个不同轴数的型号可选。

2

2



XPLC864E功能简介



XPLC864E在XPLC006E的功能基础上做了升级(即上节介绍的XPLC006E的功能都支持),部分资源空间优于XPLC006E,使用方法基本一致,不同之处在于XPLC864E,硬件支持32点输入、32点输出、2个ADC、2个DAC,支持脉冲轴和总线轴混合使用,总实轴轴数为8,除了带EtherCAT接口之外,输出口硬件上可配置为8个轴的脉冲方向信号输出,另带两路编码器输入,可由输入口配置

XPLC864E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。





2

2

XPLC系列经济型EtherCAT总线运动控制器支持多种编程方式,支持使用正运动技术自主研发的ZDevelop开发环境的Basic语言和PLC梯形图,上一节讲解了PLC梯形图的开发,本节内容主要讲解ModbusRTU或ModbusTcp与触摸屏通讯。





控制器与触摸屏的通讯简介

XPLC006E控制器的串口和网口采用MODBUS协议,只要支持MODBUS通讯协议的触摸屏都可以与XPLC006E控制器连接使用。

控制器使用MODBUS协议与第三方触摸屏通讯时,此时需要将数据放在MODBUS寄存器内进行传递,支持通过串口或网口连接到控制器,有位寄存器和字寄存器两类可用。

控制器的MODBUS地址与其他厂家的触摸屏地址映射关系有所不同,编写程序之前要理清控制器和触摸屏的MODBUS寄存器地址对应关系,控制器与部分触摸屏MODBUS寄存器地址关系如下。

1.控制器的MODBUS地址从0开始,在与威纶触摸屏通讯时,地址都是从0开始,所以是一一对应。

控制器MODBUS_BIT(0)对应威纶触摸屏MODBUS_0X_0,布尔型。

控制器MODBUS_REG(0)对应威纶触摸屏MODBUS_4X_0,字寄存器。

2.在与昆仑通态触摸屏通讯时,昆仑通态地址从1开始,没有0地址,控制器地址从0开始,所以触摸屏地址加1。

控制器MODBUS_BIT(0)对应昆仑通态触摸屏MODBUS_0X_1,布尔型。

控制器MODBUS_REG(0)对应昆仑通态触摸屏MODBUS_4X_1,字寄存器 。







触摸屏与控制器的连接方式

根据触摸屏和控制器上带的通讯接口选择通讯连接方式,可选串口连接或网口连接。触摸屏和控制器建立通讯连接的时候,此时触摸屏为主站,控制器为从站,主要在触摸屏端操作连接,连接时对应的串口或网口参数要匹配,控制器端只需提供通讯的参数,以下为网口和串口的通讯参数说明。
1. 网口连接

控制器出厂默认IP地址为“192.168.0.11”,网口默认为MODBUS从端,IP地址可在软件“控制器状态”窗口查看。使用IP_ADDRESS指令修改IP地址或在修改IP地址窗口修改,修改一次永久生效。控制器至少包含2个网口通道,网口的端口号为502,支持触摸屏的MODBUS-TCP协议连接。

网口通道数查看:不同型号控制器支持的串口通道数和网口通道数不同。使用在线命令栏发送“?*port”查看通道数,如下图,通道数确定了控制器能同时连接的设备个数。



上图中的Port:0-1为串口通道,2-9都是网口通道,10-15为自定义网口通讯通道,20为控制器互联通道。

不同型号的控制器支持的通讯通道数不同。控制器至少有2个网口通道,所以可以通过网口同时连接2个设备,比如连接上位机程序的同时,再连接ZDevelop软件在线监控。通过路由器连接两个不同设备也是可以的。

在线命令栏发送“?*port_status”查看通讯端口是否已被使用。返回值为0表示没有连接,返回值为1表示连接。

前两个通道COM为串口通道,串口总是返回1,第三个通道为网口通道,用于连接ZDevelop。



当前网口通道协议查看使用PROTOCOL 指令返回当前通道的通讯协议,根据下表返回值判断。

VAR1 = PROTOCOL(port)

port:通道号

返回值

协议

0

RAW数据格式,无协议

3

MODBUS协议,控制器为从端(缺省)

14

MODBUS协议,控制器为主端

15

直接命令执行方式

2.串口连接

串口通常可选RS232串口或RS485串口,串口默认参数为:波特率38400,数据位8,停止位1,校验位无,串口默认为MODBUS从端,与触摸屏通讯时无需修改,采用SETCOM指令配置串口参数。

注意:串口参数时掉电不保存的,控制器重新上电后,SETCOM参数会还原成默认值,控制器的所有串口的MODBUS协议站号ADDRESS为 1- 127,缺省=1。

串口参数可通过“控制器状态”窗口通讯配置查询如下图,或“?*SETCOM”打印查看。







控制器连接触摸屏使用

1.控制器与触摸屏通讯的参考流程

(1)控制器端的程序使用ZDevelop软件编写完成下载到控制器内。

(2)触摸屏端的程序使用对应的编程软件编写完成后下载到触摸屏保存。

(3)程序下载完成之后,选择串口或网口连接触摸屏与控制器脱机运行。

通讯时可用寄存器类型有如下几种:MODBUS_BIT(布尔型),MODBUS_REG(16位整型),MODBUS_LONG(32位整型),MODBUS_IEEE(32位浮点型),MODBUS_STRING(8位字节型)。
2.下载控制器程序

控制器端的程序使用ZDevelop软件编写完成并下载到控制器内。



3.下载触摸屏程序

威纶触摸屏端的程序使用EasyBuilder编程软件编写,编程方法参见威纶提供手册,程序编程完成后,打开“系统参数设置”窗口,如下图。



(1)添加要与触摸屏连接的设备

设备列表里会显示本机触摸屏和本机设备,若有本机设备双击该行,若是第一次建立连接,没有本机设备,需要新建,点击 “新建设备/服务器...”,弹出“设备属性”窗口。



(2)设置设备属性

如下图所示,选择设备类型,先选MODBUS IDA通讯协议,再根据触摸屏与控制器的实际连接方式选择。

串口通讯和网口通讯所选的设备类型不同,详见后续说明。



A.若采用串口连接

设备类型:选择模式MODBUS RTU(Zero-based Addressing);

接口类型:选择串口类型(RS485或RS232);

COM:通讯端口设置匹配的波特率等参数,如下图,此时参数必须与连接到控制器的端口参数一致,设置完成确认关闭系统参数设置窗口。



B.若采用网口连接

设备类型:选择模式MODBUS TCP/IP(Zero-based Addressing),接口类型自动改为以太网;

IP:填入当前要连接的控制器的IP地址和端口号,如下图;

设置完成确认关闭系统参数设置窗口。



系统参数设置完成后,编译写好的组态程序,点击“编译”,打开如下图编译窗口。



点击右下角“开始编译”按钮,编译成功打印信息提示,“开始编译”按钮变成“编译”按钮,程序不正确编译窗口会打印出错误提示信息,这时需要修改程序直至编译成功。



程序编译成功,将触摸屏连接到PC下载程序,下载程序入口如下图。



点击下载按钮,通过以太网将程序下载到触摸屏,下载完成后,程序已写入触摸屏,可以断开触摸屏与PC的连接。

(3)触摸屏和控制器通讯

在控制器端的程序成功下载到控制器后,和触摸屏端的程序成功下载到触摸屏之后,可与PC断开连接,物理连接触摸屏与控制器,此时触摸屏与控制器就可以相互通信了,若无法通讯,则需要检查上一步触摸屏端的通讯参数的配置。

(4)控制器与触摸屏脱机仿真

若没有控制器或触摸屏,可采用仿真器仿真,ZDevelop程序下载到仿真器内,只支持网口连接仿真,按照上面的步骤,EasyBuilder软件的系统参数设置时选择设备类型为MODBUS IDA—MODBUS TCP/IP(Zero-based Addressing),IP地址填入仿真器IP:127.0.0.1,如下图选择“在线模拟”即可连接控制器程序与组态程序进行仿真。



点击在线模拟之后自动开始编译,编译结果正确打开如下触摸屏仿真界面,此时可以操作。编译不成功会出现报错错误信息。

触摸屏仿真界面如下图所示:







触摸屏通讯例程

1.课程前期准备材料

(1)电脑1台:用于程序开发;

(2)控制器1个:XPLC864E,完成直线和平面圆弧插补;

(3)24V直流电源1个:控制器采用24V直流电源供电;

(4)总线驱动器+电机(或步进驱动器+电机)2套:数量根据轴数选定;

(5)威纶触摸屏1个:人机交互;

(6)控制器接线端子若干;

(7)网线若干;
(8)连接线若干。
2.项目配置

寄存器地址分配如下表:

位寄存器(0x)

功能

字寄存器(4x)

功能

M(0)

启动按钮

D(0)

当前运行状态显示

M(1)

停止按钮

D(2)

圆弧半径设置与显示

M(4)

回零按钮

D(4)

跑道长度设置与显示

M(5)

保存数据按钮

D(10000)

X轴当前位置显示

M(10)

X轴负向手动

D(10002)

Y轴当前位置显示

M(11)

X轴正向手动



M(20)

Y轴负向手动

FLASH块

功能

M(21)

Y轴正向手动

块0

保存加工数据

M(1000)

X轴回零状态显示



M(1001)

Y轴回零状态显示



本项目使用的D寄存器均为MODBUS_IEEE。

任务资源配置如下图:本实例占用三个任务。

任务0:主循环,循环扫描外部输入信号来决定其他任务的启动。

任务1:由任务0启动,加工前先用任务1执行回零程序,回零完成后任务1用于加工程序。

任务2:由任务0启动,用于手动运动。



如下图,在ZDevelop软件上通过“寄存器”窗口批量查询MODBUS寄存器的值。



3.应用程序

(1)威纶触摸屏端程序

使用触摸屏厂商提供的组态编程软件编写,触摸屏通过MODBUS与控制器通讯,元件属性设置对应MODBUS寄存器地址,按下元件可以修改对应的MODBUS寄存器地址的值,传递给控制器处理,程序界面如下图。



(2)控制器端程序

控制器的编程界面和程序如下图:



控制器端通过WHILE不断的扫描MODBUS寄存器值的变化来决定是否执行对应的程序。
'**********初始化模块*********SETCOM(38400,8,1,0,0,4,2,1000)'出厂模式,MODBUS字寄存器和VR空间独立ERRSWITCH = 3            '全部信息输出RAPIDSTOP(2)WAIT IDLEBASE(0,1)'选定 X Y轴DPOS=0,0ATYPE=1,1UNITS = 100,100SPEED = 100,100ACCEL = 1000,1000DECEL = 1000,1000SRAMP = 100,100DIMrun_state                '运行状态                 run_state = 0                 '0 停止,1 运行,2 回零MODBUS_REG(0) = run_state    '显示运行状态DIMradius,length            '半径,长度radius = 100                 '缺省半径大小length = 300                 '缺省长度'FLASH_READ0,radius,lengthMODBUS_IEEE(2) = radius     '显示半径大小MODBUS_IEEE(4) = length     '显示长度DIMhome_done '回零完成的标志位  0 未回零,1 已回零home_done = 0 '上电进入未回零状态MODBUS_BIT(0) = 0            '启动 按钮复归MODBUS_BIT(1) = 0            '停止 按钮复归MODBUS_BIT(4) = 0            '回零 按钮复归MODBUS_BIT(5) = 0  '保存数据 按钮复归MODBUS_BIT(1000)=0      'X轴 回零标志为0MODBUS_BIT(1001)=0      'Y轴 回零标志为0STOPTASK2RUNTASK2, guidetask       '启动手动运行任务'**********按键扫描模块*********WHILE1                            '扫描触摸屏端按钮输入IFMODBUS_BIT(0)= 1 THEN     '启动按钮按下       MODBUS_BIT(0) = 0          '按钮复归       IF run_state = 0 THEN    '待机停止状态IFhome_done = 0 THEN'未回零时不启动运动              TRACE "before move need home"           ELSEIF home_done = 1 THEN'已回零启动任务运行TRACE"move start"STOPTASK1                 '软件安全,停止任务0RUNTASK1, movetask     '启动运行加工任务1           ENDIF        ENDIFELSEIFMODBUS_BIT(1) = 1 THEN    '停止按钮按下TRACE"move stop"        MODBUS_BIT(1) = 0             '按钮复归 RAPIDSTOP(2)STOPTASK1RAPIDSTOP(2)        WAIT IDLE(0)   run_state = 0                 '停止标志MODBUS_REG(0) = run_state    '显示状态    ENDIF   IFMODBUS_BIT(4) = 1 THEN   '回零按钮按下        MODBUS_BIT(4) = 0          '回零复归   IFrun_state= 0  THENstoptask1runtask1,home_task     '启动回零任务ENDIF    ENDIF     '''保存数据处理IFMODBUS_BIT(5) = 1 THEN   '保存数据 按钮按下    MODBUS_BIT(5) = 0          '保存数据 按钮复归PRINT"写入数据到FLASH"radius = MODBUS_IEEE(2)  length = MODBUS_IEEE(4) FLASH_WRITE0,radius,length'往扇区0写入数据ENDIFWENDEND
'**********加工运动模块*********movetask:                    '运行画圆弧+跑道的任务run_state =1 '进入运行状态MODBUS_REG(0) = run_stateradius = MODBUS_IEEE(2)      '读取半径length = MODBUS_IEEE(4)      '读取长度TRIGGERBASE(0,1)'选定 X Y轴MOVEABS(0,0)MOVE(length,0)'从原点开始走跑道轨迹MOVECIRC(0,radius*2,0,radius,0)MOVE(-length,0)MOVECIRC(0,-radius*2,0,-radius,0)    WAIT IDLE(0)run_state = 0'进入待机状态MODBUS_REG(0) = run_stateEND'**********回零任务*********home_task:TRACE"enter home task"run_state = 2              '回零标志MODBUS_REG(0) = run_state   '显示状态TRIGGERBASE(0,1)CANCEL(2)AXIS(0)'先轴0,轴1停止CANCEL(2)AXIS(1)WAITIDLE(0)WAITIDLE(1)MOVEABS(0)AXIS(0)'虚拟设备轴0的归零,实际轴使用DATUM回零    MOVEABS(0) AXIS(1)'虚拟设备轴1的归零WAITIDLE(0)MODBUS_BIT(1000)=1'设置轴0已归零的标志WAITIDLE(1)    MODBUS_BIT(1001)=1'设置轴1已归零的标志 home_done = 1    TRACE "home task done"run_state = 0    '回到待机状态MODBUS_REG(0) = run_stateEND'**********手动运动*********guidetask:WHILE1IFrun_state = 0 THEN              '判断是否处于停止状态BASE(0)IFMODBUS_BIT(10) = 1 THEN       '左             MODBUS_BIT(10) = 0             VMOVE(-1)ELSEIFMODBUS_BIT(11) = 1 THEN      '右             MODBUS_BIT(11) = 0        VMOVE(1)ELSEIFMTYPE = 10 OR MTYPE = 11 THEN  '非VMOVE运动        CANCEL(2)    ENDIFBASE(1)IFMODBUS_BIT(20) = 1 THEN        '左MODBUS_BIT(20) = 0VMOVE(-1)ELSEIFMODBUS_BIT(21) = 1 THEN      '右MODBUS_BIT(21) = 0             VMOVE(1)ELSEIFMTYPE = 10 OR MTYPE = 11 THEN  '非VMOVE运动CANCEL(2)ENDIFENDIF       DELAY(100) WENDEND
(3)应用程序运动效果

A.轴位置曲线XY模式下的合成插补轨迹



B.XY模式下的合成插补轨迹





本次,正运动技术经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯 ,就分享到这里。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-7-27 12:08 , Processed in 0.047216 second(s), 27 queries .

快速回复 返回顶部 返回列表