>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三个不同轴数的型号可选。
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等接口。
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,字寄存器 。
根据触摸屏和控制器上带的通讯接口选择通讯连接方式,可选串口连接或网口连接。触摸屏和控制器建立通讯连接的时候,此时触摸屏为主站,控制器为从站,主要在触摸屏端操作连接,连接时对应的串口或网口参数要匹配,控制器端只需提供通讯的参数,以下为网口和串口的通讯参数说明。 控制器出厂默认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)网线若干; 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 IDLE BASE(0,1) '选定 X Y轴 DPOS=0,0 ATYPE=1,1 UNITS = 100,100 SPEED = 100,100 ACCEL = 1000,1000 DECEL = 1000,1000 SRAMP = 100,100 DIM run_state '运行状态 run_state = 0 '0 停止,1 运行,2 回零 MODBUS_REG(0) = run_state '显示运行状态 DIM radius,length '半径,长度 radius = 100 '缺省半径大小 length = 300 '缺省长度 'FLASH_READ 0,radius,length MODBUS_IEEE(2) = radius '显示半径大小 MODBUS_IEEE(4) = length '显示长度 DIM home_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轴 回零标志为0 MODBUS_BIT(1001)=0 'Y轴 回零标志为0 STOPTASK 2 RUNTASK 2, guidetask '启动手动运行任务 '**********按键扫描模块********* WHILE 1 '扫描触摸屏端按钮输入 IF MODBUS_BIT(0)= 1 THEN '启动按钮按下 MODBUS_BIT(0) = 0 '按钮复归 IF run_state = 0 THEN '待机停止状态 IF home_done = 0 THEN'未回零时不启动运动 TRACE "before move need home" ELSEIF home_done = 1 THEN'已回零启动任务运行 TRACE "move start" STOPTASK 1 '软件安全,停止任务0 RUNTASK 1, movetask '启动运行加工任务1 ENDIF ENDIF ELSEIF MODBUS_BIT(1) = 1 THEN '停止按钮按下 TRACE "move stop" MODBUS_BIT(1) = 0 '按钮复归 RAPIDSTOP(2) STOPTASK 1 RAPIDSTOP(2) WAIT IDLE(0) run_state = 0 '停止标志 MODBUS_REG(0) = run_state '显示状态 ENDIF IF MODBUS_BIT(4) = 1 THEN '回零按钮按下 MODBUS_BIT(4) = 0 '回零复归 IF run_state= 0 THEN stoptask 1 runtask 1,home_task '启动回零任务 ENDIF ENDIF '''保存数据处理 IF MODBUS_BIT(5) = 1 THEN '保存数据 按钮按下 MODBUS_BIT(5) = 0 '保存数据 按钮复归 PRINT "写入数据到FLASH" radius = MODBUS_IEEE(2) length = MODBUS_IEEE(4) FLASH_WRITE 0,radius,length'往扇区0写入数据 ENDIF WEND END
'**********加工运动模块********* movetask: '运行画圆弧+跑道的任务 run_state =1 '进入运行状态 MODBUS_REG(0) = run_state radius = MODBUS_IEEE(2) '读取半径 length = MODBUS_IEEE(4) '读取长度 TRIGGER BASE(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_state END '**********回零任务********* home_task: TRACE "enter home task" run_state = 2 '回零标志 MODBUS_REG(0) = run_state '显示状态 TRIGGER BASE(0,1) CANCEL(2) AXIS(0)'先轴0,轴1停止 CANCEL(2) AXIS(1) WAIT IDLE(0) WAIT IDLE(1) MOVEABS(0) AXIS(0)'虚拟设备轴0的归零,实际轴使用DATUM回零 MOVEABS(0) AXIS(1)'虚拟设备轴1的归零 WAIT IDLE(0) MODBUS_BIT(1000)=1'设置轴0已归零的标志 WAIT IDLE(1) MODBUS_BIT(1001)=1'设置轴1已归零的标志 home_done = 1 TRACE "home task done" run_state = 0 '回到待机状态 MODBUS_REG(0) = run_state END '**********手动运动********* guidetask: WHILE 1 IF run_state = 0 THEN '判断是否处于停止状态 BASE(0) IF MODBUS_BIT(10) = 1 THEN '左 MODBUS_BIT(10) = 0 VMOVE(-1) ELSEIF MODBUS_BIT(11) = 1 THEN '右 MODBUS_BIT(11) = 0 VMOVE(1) ELSEIF MTYPE = 10 OR MTYPE = 11 THEN '非VMOVE运动 CANCEL(2) ENDIF BASE(1) IF MODBUS_BIT(20) = 1 THEN '左 MODBUS_BIT(20) = 0 VMOVE(-1) ELSEIF MODBUS_BIT(21) = 1 THEN '右 MODBUS_BIT(21) = 0 VMOVE(1) ELSEIF MTYPE = 10 OR MTYPE = 11 THEN '非VMOVE运动 CANCEL(2) ENDIF ENDIF DELAY(100) WEND END
(3)应用程序运动效果 A.轴位置曲线XY模式下的合成插补轨迹 B.XY模式下的合成插补轨迹 本次,正运动技术经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯 ,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
经济型EtherCAT运动控制器(三):PLC实现多轴直线插补与电子凸轮
经济型EtherCAT运动控制器(二):ZBasic实现多轴直线插补运动
经济型EtherCAT运动控制器(一):功能简介与应用场景
运动控制+机器视觉Demo软件框架(三):视觉纠偏+连续插补的配方编辑
运动控制+机器视觉Demo软件框架(二):移动标定和形状匹配
运动控制+机器视觉Demo软件框架(一):机械参数和配方文件的管理
运动控制+机器视觉Demo软件框架系统概述
开放式激光振镜+运动控制器(六):双振镜运动
开放式激光振镜+运动控制器(五):ZMC408SCAN控制器硬件介绍
开放式激光振镜+运动控制器(四):PSO位置同步输出在激光振镜加工中的应用
开放式激光振镜+运动控制器(三):振镜矫正 开放式激光振镜+运动控制器(二):振镜填充 开放式激光振镜+运动控制器(一):硬件接口
EtherCAT运动控制器之ZMIO300模块的使用 EtherCAT运动控制器的PLC编程(四) 电子凸轮
EtherCAT运动控制器的PLC编程(三) 电子齿轮
EtherCAT运动控制器的PLC编程(二) 圆弧插补
EtherCAT运动控制器的PLC编程(一) 直线插补
快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
快速入门 | 篇二十一:正运动技术运动控制器自定义通讯
快速入门 | 篇二十:正运动技术运动控制器MODBUS通讯
快速入门 | 篇十九:正运动技术运动控制器多轴同步与电子凸轮指令简介
快速入门 | 篇十八:正运动技术脉冲型运动控制器的使用
快速入门 | 篇十七:运动控制器多轴插补运动指令的使用
快速入门 | 篇十六:正运动控制器EtherCAT总线快速入门
快速入门 | 篇十五:运动控制器运动缓冲简介
快速入门 | 篇十四:运动控制器基础轴参数与基础运动控制指令
快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用
快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用
快速入门 | 篇十一:正运动技术运动控制器中断的应用
快速入门 | 篇十:运动控制器多任务运行特点 快速入门 | 篇九:如何进行运动控制器示波器的应用?
快速入门 | 篇八:如何进行运动控制器EtherCAT总线的基础使用?
快速入门 | 篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
快速入门 | 篇六:如何进行运动控制器数据与存储的应用?
快速入门 | 篇五:如何进行运动控制器输入/输出IO的应用?
快速入门 | 篇四:如何进行运动控制器与触摸屏通讯?
快速入门 | 篇三:如何进行运动控制器ZPLC程序开发?
快速入门 | 篇二:如何进行运动控制器ZBasic程序开发?
快速入门 | 篇一:如何进行运动控制器固件升级?
G代码在运动控制器上的应用 运动控制器的自定义G代码编程应用
离线仿真调试,加快项目进度!
8轴EtherCAT轴扩展模块EIO24088的使用 运动控制器之追剪应用Demo
运动控制器激光振镜控制 ZMC运动控制器SCARA机械手应用快速入门 运动控制器RTEX总线使用入门
正运动技术CAD导图软件配合控制器的使用方法 EtherCAT总线运动控制器应用进阶一
EtherCAT运动控制卡开发教程之Qt(中):小线段连续轨迹加工、暂停与继续
EtherCAT运动控制卡开发教程之Qt(上):开发环境配置与简单运动控制应用
EtherCAT运动控制卡开发教程之python
EtherCAT运动控制卡的SCARA等机器人指令的应用 EtherCAT运动控制卡的PWM与模拟量输出和运动速度同步 EtherCAT运动控制卡硬件比较输出以及编码器锁存 EtherCAT运动控制卡IO动作与运动控制的同步 EtherCAT运动控制卡实时程序的运行和读写控制
EtherCAT运动控制卡的运动暂停、恢复与系统安全设置 EtherCAT运动控制卡小线段前瞻的连续插补运动 EtherCAT运动控制卡的多轴插补运动和手轮运动 EtherCAT运动控制卡的辅助调试工具与方法介绍 EtherCAT运动控制卡的总线轴参数设置和轴运动 EtherCAT运动控制卡的硬件接线与C#的硬件外设读写与回零运动 EtherCAT运动控制卡的硬件接线与C#的单轴运动控制
简单易用的运动控制卡(十六):螺距补偿和反向间隙补偿 简单易用的运动控制卡(十五):PC启停控制器的实时程序
简单易用的运动控制卡(十四):PWM、模拟量输出与运动控制的同步
简单易用的运动控制卡(十三):IO动作与运动控制的同步
简单易用的运动控制卡(十二):运动控制系统的安全设置
简单易用的运动控制卡(十一):运动的暂停恢复和速度倍率设置
简单易用的运动控制卡(十):连续插补和小线段前瞻
简单易用的运动控制卡(九):圆弧插补和螺旋插补
简单易用的运动控制卡(八):直线插补和手轮运动
简单易用的运动控制卡(七):一次性加载多条连续小线段数据
简单易用的运动控制卡(六):Basic文件下载和连续轨迹加工
简单易用的运动控制卡(五):IO配置与回零运动
简单易用的运动控制卡(四):函数库的封装
简单易用的运动控制卡(三):轴参数配置和单轴运动控制
简单易用的运动控制卡(二):外设读写与ZDevelop诊断 简单易用的运动控制卡(一):硬件接线和上位机开发
运动控制卡在ROS上的应用(下)
运动控制卡在ROS上的应用(上)
EtherCAT运动控制卡和LabVIEW构建智能装备(五) EtherCAT运动控制卡和LabVIEW构建智能装备(四) EtherCAT运动控制卡和LabVIEW构建智能装备(三) EtherCAT运动控制卡和LabVIEW构建智能装备(二) EtherCAT运动控制卡和LabVIEW构建智能装备(一) EtherCAT运动控制卡在LabVIEW中的运动控制与数据采集
运动控制卡应用开发教程之MATLAB 运动控制卡应用开发教程之C++ 运动控制卡应用开发教程之Python 运动控制卡应用开发教程之C# 运动控制卡应用开发教程之Linux 运动控制卡应用开发教程之VB.NET
运动控制卡应用开发教程之VB6.0 运动控制卡应用开发教程之VC6.0 运动控制卡应用开发教程之使用Qt 运动控制卡应用开发教程之LabVIEW 运动控制卡应用开发教程之激光振镜控制 运动控制卡应用开发教程之硬件比较输出
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业,主要产品有运动控制器、运动控制卡、视觉运动控制一体机、人机界面以及扩展模块等。 正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。 正运动技术背靠蓬勃发展的制造业,与时俱进,富有创新,致力于智能制造设备商和终端用户不断提升技术应用和制造水平。经过众多合作伙伴多年的应用开发,产品广泛应用于国内外的3C电子、半导体、印刷包装、纺织服装、激光加工、机械加工、机器人、新能源、医疗保健、舞台娱乐等领域。 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |