点击上方“正运动小助手”,随时关注新动态!

运动控制器ZHMI组态编程简介一 

今天我们来学习一下,运动控制器的ZHMI组态编程简介。本文主要从产品概述、控制器连接触摸屏使用、HMI编程方法以及组态示例程序等四方面来讲解。

01产品概述

采用ZMC306X控制器连接ZHD400X触摸屏。

控制器参考配置如下图:

(一)ZMC306X

ZMC306X系列控制器本体带6个脉冲轴,可通过CAN总线扩展脉冲轴,支持多达12轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等;采用优化的网络通讯协议可以实现实时的运动控制。

通讯接口包含RS232、RS485、RS422、以太网、U盘、CAN。

控制器的输入口0-1支持锁存功能,输出口0-1支持PWM功能;本身带两路模拟量输入和两路模拟量输出接口,12位精度,电压范围0-10V。

支持正运动技术XPLC的功能,使用ZDevelop软件的HMI编程开发组态程序,可以通过网络来做组态显示。

(二)ZHD400X

ZHD400X是一款网络显示的触摸屏示教盒,示教盒必须和支持ZHMI功能的控制器配合使用,触摸屏的组态程序开发使用ZDevelop的HMI编程开发方式,程序保存在控制器中。

示教盒带有一个USB口,一个U盘延长口,使用24V直流电源供电(可USB供电),带有800*480分辨率的真彩显示屏,本身带18个按键,配急停开关。

ZHD400X支持触摸屏,可以按键和触摸配合使用。

屏幕边上的物理按键的编码规则参见《ZHD400X手持盒手册》说明,按键按下时,示教盒自动向控制器发送物理按键,控制器程序可以检测到物理按键,如果需要使用虚拟按键,需要在组态里面使用按键转换表,ZDevelop带有标准400X的按键转换表,可以根据具体情况或面膜修改按键转换表。

02控制器连接触摸屏使用

触摸屏配一根网线,使用网线连接到控制器的EtherNET网口,网线水晶头边上引出三根线,分被是示教盒电源线和急停信号线,红色为24V电源正极,黑色为24V电源负极,紫色为急停信号线。

触摸屏和控制器的主电源可共用一个。

使用步骤:

1.先使用ZDevelop软件编辑好HMI程序,连接控制器,将程序下载到ROM掉电保存,就可以断开控制器和ZDevelop的连接。然后给触摸屏上电。

2.直接使用配发的连接线将ZHD400X接到控制器的网口上,然后在屏上四个角,按画Z字顺序点击,连续2次,唤醒屏幕,弹出可以弹出设置窗口,可以进行触摸校正,控制器IP修改等。

3.设置窗口如下,在弹出的窗口上自动获取到当前所连的控制器IP的地址,确认IP无误,点击Connect即可连接使用,此时触摸屏显示起始基本窗口的内容。

4.若没有触摸屏,可将HMI程序下载到仿真器,在XPLC screen平台仿真。

连接仿真器下载之后,点击“显示”按钮即可弹出仿真界面。

XPLC screen显示效果:

03HMI编程方法

HMI组态编程一般和Basic混合编程,将HMI要调用的寄存器和相关动作函数写在Basic内,在HMI文件内通过系统设置或元件调用Basic函数,被调用的Basic函数必须是全局的SUB过程。

注意要运行的组态文件一定要设置好自动运行任务号。

编程参考流程:

1.新建项目和HMI文件,HMI文件建立之后会弹出“HMI系统设置”窗口,设置分辨率、主界面窗口等基本信息;

2.根据需求新建窗口,设置窗口属性;

3.在各个窗口内添加组态元件,设置元件属性;窗口的调用可在元件动作中设置,可直接打开或关闭指定窗口,或调用Basic函数使用指令打开或关闭指定窗口;

4.需要调用Basic函数时在工程项目下新建Basic文件,将组态元件要调用的函数编写成全局的SUB函数。

5.程序编写完成指定文件自动运行任务号,下载到控制器或仿真器,连接触摸屏显示或在XPLC screen显示。

(一)新建HMI文件

首先建立工程项目之后,新建HMI文件,默认新建的HMI程序带三个不同风格的键盘窗口6、7、8和一个基本窗口10,默认这个10号窗口作为触摸屏的主界面,可更改默认主界面(参见下页HMI系统设置)。

调用软键盘窗口输入数据:

点击可输入数据的组态元件后,就能打开软键盘窗口,如下图,在软键盘窗口输入数值之后点击Enter保存即可变更数据。

(二)HMI系统设置

在编辑组态程序之前,选择HMI文件,首先要打开菜单栏“编辑”→“HMI系统设置”打开如下窗口。

根据组态程序要应用的示教盒的尺寸,设置好水平分辨率和垂直分辨率(如上节10号窗口方框大小)。选择起始基本窗口(即触摸屏显示的初始界面),初始化函数和周期函数选择Basic里编写好的GLOBAL全局定义的SUB子函数。

初始化程序HMI上电后运行一次,周期函数周期循环扫描。

(三)组态窗口

组态显示必须以一个基本窗口为底窗口,作为其他窗口的背景画面,元件需要依附窗口显示,一个组态文件下可新建多个不同类型的窗口。

新建窗口:菜单栏“元件”→“新建窗口”打开如下窗口,输入窗口号和窗口名称后确认,注意窗口号不要重复。

窗口的属性和尺寸位置等信息均需要打开窗口“属性”修改。

组态视图能显示全部窗口和各窗口下的元件,元件在窗口上添加,窗口或元件的属性在“属性”窗口修改。

点击组态窗口或元件便能打开属性窗口。

窗口类型包含五种:基本窗口(Base Window),软键盘窗口(Keyboard Window),弹出窗口(Pop Window)、菜单窗口(Menu Window)、置顶窗口(Top Window)。

1.基本窗口(Base Window):组态显示必须以一个基本窗口为底窗口。只能显示一个基本窗口。基本窗口通过程序或元件操作进行切换,不能关闭。

2.软键盘窗口(Keyboard Window):用于需要输入数值的情况,元件:值显示value,元件属性内选择软件盘窗口,新建的HMI文件内置有三种软键盘窗口可供选择。

3.弹出窗口(Pop Window):Pop窗口需要通过程序或元件操作关闭,Pop窗口打开后,Pop区域范围外的元件仍可以触发,在Pop窗口属性里设置垄断后,只能操作当前Pop窗口内的元件。切换基本窗口后Pop/Menu窗口关闭

4.菜单窗口(Menu Window):Menu窗口属于Pop窗口,都是调用后弹出。不同之处是Menu窗口弹出后,获得操作最大权限,此时只能对Menu窗口进行操作。当点击到非Menu窗口区域时,Menu窗口将关闭。

5.置顶窗口(Top Window):总是在最前端显示的窗口,一般为一个小窗口,可以用来实现工具条等。切换基本窗口时,Top窗口仍会显示在最前端,不会关闭。

窗口打开或关闭的方法

1.功能键BUTTON调用Basic程序,在程序内编写HMI_SHOWWINDOW显示窗口,HMI_BASEWINDOW显示基本窗口,HMI_CLOSEWINDOW()关闭窗口,基本窗口不支持关闭。

2.功能键属性-动作选择关闭或显示窗口。

选择“元件”→“位元件”→“功能键”,新建一个功能键按钮,打开元件的属性窗口,找到“动作”下拉列表。

可以选择打开3种窗口类型base/top/pop,其中menu窗口属于Pop Window类型。

选择Close可关闭当前窗口或指定关闭窗口号。

(四)添加组态元件

HMI编程所需的窗口和元件在菜单栏“元件”里选择。窗口和各元件的详细使用说明参见HMI编程手册。

在“元件”菜单栏添加元件后,将元件放置于组态窗口尺寸范围内,打开元件属性设置元件相关参数,如下图,拖拽元件选择放置的位置,或在属性的尺寸和位置栏设置。

不同的元件属性会有差异,但也有共性,一般需要调用Basic函数执行的场合选择“功能键Button”,需要控制寄存器状态时选择“位元件”或“字元件”,显示文本使用“字符显示”,使用“值显示”元件调用软键盘窗口用于在触摸屏上输入数值。

1.元件通用属性

属性

功能

说明

元件编号

/

/

元件名称

/

/

显示层次

选择元件显示层次

TopLayer:表层,显示在最外层,覆盖底下控件

MidLayer:中间层

BottomLayer:底层(默认)

有效显示

选择元件是否显示

默认True,选择False时,元件不显示且无功能作用

采用有效控制

通过寄存器控制元件是否显示

默认False,选择Ture通过寄存器控制元件是否显示

设备编号

设备编号

默认local

寄存器类型

选择寄存器类型

多种寄存器下拉列表选择

寄存器编号

选择寄存器编号

寄存器值为0时不显示,非0时使用

是否图片化

控件变为图片的形式

默认False

文本库

文本库的名称

不设置文本库显示格式文本

格式文本0/1

打开格式文本设置控件要显示的文本

默认显示文本0,按下时显示文本1

点击调用函数

按键按下时调用函数

下拉框选择可以调用的函数名

水平位置

元件的水平起始位置

不要超出水平分辨率

垂直位置

元件的垂直起始位置

不要超出垂直分辨率

宽度

元件的宽度

/

高度

元件的高度

/

2.寄存器

大部分的元件都包含“寄存器类型”这一属性,用来与各类寄存器建立数据联系,寄存器可选系统自带的寄存器或自定义变量、数组。

如下图,位状态切换元件按下将位寄存器M10的值置1,同时显示格式文本0;松开M10置0,同时显示格式文本1。

3.动作

通过动作下拉列表,不同的元件可选择的动作有所差异,常见可选打开或关闭窗口、调用Basic的全局SUB函数等,默认按下生效。

如下图,功能键的动作选择调用函数,函数选择onrun()。

04组态示例程序

此例程为单轴运动例程,包含两个文件,Basic的程序由HMI调用执行。

HMI组态界面:

先选择要运动的轴号,X轴或Y轴,不选择轴号无法运动,再选择运动方向和运动模式,若选择运动模式为寸动,还需要设置寸动距离。

上方的基本轴参数可自定义设置或采用默认值,调用软键盘窗口自定义输入值,以上设置完成后,可点击运动让轴运动起来,运行的速度SPEED和轴位置DPOS分被获取到值显示元件1和2动态显示。

按下停止按钮立即停止当前运动,按下位置清零按钮清零DPOS。

Basic程序界面:

Basic程序:

global sub main_int()  'HMI初始化函数  global  str(20)      '轴状态,值显示元件11调用  str="未选择"         '值显示元件11显示内容:未选择    global  state(20)    '运行状态  state="停止"    global  axisnum    '轴选择  axisnum=0          '1 X轴,2 Y轴....    intaxis()          '初始化轴参数,默认值    dpos=0  units = table(0)   'HMI界面手动设置值,保存在table  lspeed = table(1)  speed = table(2)  accel = table(3)  decel = table(4)  sramp = table(5)    table(10)=0          '当前位置,值显示元件1调用    table(11)=0          '当前速度,值显示元件2调用    table(15)=0          '寸动距离,值显示元件28调用      RAPIDSTOP(2)  end subglobal sub main_scan()  'HMI周期函数  slcaxis()             '选择轴    if idle=-1 then      '只有在停止状态,轴参数才生效    setaxis()  endif    table(10)=DPOS        '动态获取显示  table(11)=MSPEED    if idle=-1 then    state="停止"        endif  end subsub intaxis()          '轴参数初始化    table(0)=10          'units  脉冲当量  table(1)=10          'lspeed 起始速度  table(2)=100         'speed  运行速度  table(3)=1000        'accel  加速度  table(4)=1000        'decel  减速度  table(5)=10          'sramp  s曲线时间end subsub setaxis()           '轴参数设置  units = table(0)  lspeed = table(1)  speed = table(2)  accel = table(3)  decel = table(4)  sramp = table(5)end subglobal sub slcaxis()       '轴选择函数  if MODBUS_BIT(0)=1 then  'modbus_bit(0)对应hmi界面的X轴选择按钮    cancel(2) axis(1)      '更换选择的轴时,停止Y轴axis1的运动        str="X轴"                 '显示内容为:X轴    axisnum=1    base(0)                    '选定X轴  elseif MODBUS_BIT(1)=1 then  'modbus_bit(1)对应hmi界面的Y轴选择按钮    cancel(2) axis(0)          '更换选择的轴时,停止X轴Axis0的运动        str="Y轴"                  '显示内容为:Y轴    axisnum=2    base(1)                    '选定Y轴  endif  end subglobal sub onrun()               '运动功能键调用  if axisnum=0 then    return                        'axisnum=0未选择轴号  elseif MODBUS_BIT(20)=0 then    'modbus_bit(20)对应hmi界面的运动模式按钮,等于0为持续          if MODBUS_BIT(10)=0 then      'modbus_bit(10)对应hmi界面的方向选择按钮        vmove(1)    elseif MODBUS_BIT(10)=1 then      VMOVE(-1)    endif      elseif MODBUS_BIT(20)=1 then       '运动模式,等于1为寸动    move(table(15))                  '寸动距离指定,值显示元件28  endif    if idle=0 then    state="运动"  endifend subglobal sub onstop()     '停止功能键调用  state="停止"  RAPIDSTOP(2)end subglobal sub clear_dpos()  '位置清零功能键调用  dpos=0  end sub

《快速入门|篇二十一:正运动技术运动控制器ZHMI组态编程简介一》就讲到这里。更多学习视频及图文详解请关注我们的公众号“正运动小助手”。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

回顾往期内容

快速入门 | 篇二十一:正运动技术运动控制器自定义通讯快速入门|篇二十:正运动技术运动控制器MODBUS通讯快速入门|篇十九:正运动技术运动控制器多轴同步与电子凸轮指令简介快速入门|篇十八:正运动技术脉冲型运动控制器的使用快速入门|篇十七:运动控制器多轴插补运动指令的使用快速入门|篇十六:正运动控制器EtherCAT总线快速入门

快速入门|篇十五:运动控制器运动缓冲简介

快速入门|篇十四:运动控制器基础轴参数与基础运动控制指令

快速入门|篇十三:正运动技术运动控制器ZDevelop 编程软件的使用

快速入门|篇十二:正运动技术运动控制器U盘接口的使用快速入门|篇十一:正运动技术运动控制器中断的应用快速入门|篇十:运动控制器多任务运行特点快速入门|篇九:如何进行运动控制器示波器的应用?快速入门|篇八:如何进行运动控制器EtherCAT总线的基础使用?快速入门|篇七:如何进行运动控制器ZCAN总线扩展模块的使用?快速入门|篇六:如何进行运动控制器数据与存储的应用?快速入门|篇五:如何进行运动控制器输入/输出IO的应用?快速入门|篇四:如何进行运动控制器与触摸屏通讯?快速入门|篇三:如何进行运动控制器ZPLC程序开发?快速入门|篇二:如何进行运动控制器ZBasic程序开发?快速入门|篇一:如何进行运动控制器固件升级?

关于正运动技术

正运动技术是一家专注于运动控制技术研发与应用的国家级高新技术企业,主要从事运动控制器、运动控制卡、视觉运动控制一体机以及IO扩展模块等产品的研发、生产、销售和服务。

公司汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校致力于运动控制技术研究与应用,是国内工控领域发展最快的企业之一,也是国内完整掌握运动控制核心技术和实时工控软件平台技术的企业。

运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一相关推荐

  1. 两轴插补速度怎么给定_快速入门 | 篇十七:运动控制器多轴插补运动指令的使用...

    以下是图文详解 本节内容主要分为三大部分:插补运动.轨迹前瞻以及SP速度指令. 一 插补运动 插补是机床数控系统依照一定方法确定刀具运动轨迹的过程,插补是一个实时进行的数据密化的过程,不论是何种插补算 ...

  2. 学习笔记-CCS-MSP430F5529[快速入门篇二]

    由于2021的全国电赛延期了,从今天开始打算好好整理一下使用CCS编程的经验,本篇笔记会好好整理一下我备赛期间用CCS写的程序,包括外部中断,定时器部分的定时中断,定时器输入捕获,PWM波输出,UAR ...

  3. 快速入门 | 篇十七:运动控制器多轴插补运动指令的使用

    视频教程:<视频教程:运动控制器多轴插补运动指令的使用> 以下是图文详解 本节内容主要分为三大部分:插补运动.轨迹前瞻以及SP速度指令. 一 插补运动 插补是机床数控系统依照一定方法确定刀 ...

  4. linux进程间通信快速入门【二】:共享内存编程(mmap、XSI、POSIX)

    文章目录 mmap内存共享映射 XSI共享内存 POSIX共享内存 参考 使用文件或管道进行进程间通信会有很多局限性,比如效率问题以及数据处理使用文件描述符而不如内存地址访问方便,于是多个进程以共享内 ...

  5. 网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!

    本文中文译文由作者"ably.io"发布于公众号"高可用架构",译文原题:<深入解读HTTP3的原理及应用>.英文原题:<HTTP/3 dee ...

  6. 快速入门 | 篇十三:正运动技术运动控制器ZDevelop 编程软件的使用

    之前正运动技术与大家分享了,运动控制器的固件升级.ZBasic程序开发.ZPLC程序开发.与触摸屏通讯和输入/输出IO的应用.运动控制器数据与存储的应用.运动控制器ZCAN.EtherCAT总线的使用 ...

  7. Lua快速入门篇(XLua教程)(Yanlz+热更新+xLua+配置+热补丁+第三方库+API+二次开发+常见问题+示例参考)

                            <Lua热更新> ##<Lua热更新>发布说明: ++++"Lua热更新"开始了,立钻哥哥终于开始此部分的探 ...

  8. ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...

    手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程 2020-05-14 18:49:24 224点赞 1790收藏 241评论 你是AMD Yes党?还是 ...

  9. 单片机stm32LED流水灯C语言,STM32单片机入门 篇二:单片机编程:从点亮LED灯开始(二)...

    STM32单片机入门 篇二:单片机编程:从点亮LED灯开始(二) 2019-04-26 13:21:48 19点赞 73收藏 19评论 写在前面的话:本篇是承接上一篇文章,属于小白向. 没看过的朋友点 ...

最新文章

  1. 【摄像头】摄像头IRCUT滤光片
  2. [转]mysql使用关键字作为列名的处理方式
  3. WeChat区别this.setData()与this.setData({})
  4. bat代码小游戏_程序员入职被27岁领导告诫:我被BAT录用过,是算法方面泰斗大哥...
  5. 结构专业规范大全_1.2万篇 建筑行业规范大全套!速来!
  6. elementui 可伸缩侧边栏_ElementUI 侧边栏伸缩布局
  7. java解压缩.zip文件
  8. Windows PowerShell 2.0创建调用脚本文件
  9. GitKraken漏洞可用于盗取源代码,四大代码托管平台撤销SSH密钥
  10. apk倒入android studio,反编译apk导入android studio
  11. 计算机网络基础试题2,计算机网络基础试题库2
  12. springBoot搭配java小爬虫 获取百词斩单词释义
  13. css文章排版代码,css文章排版
  14. 小程序下划线和删除线的操作
  15. 算法程序-通过log重现计算过程
  16. 2020双十一,阿里云GRTN拉开直播和RTC技术下半场的序幕
  17. [免费]寻觅程序运行名字
  18. 点击“安全删除硬件并弹出媒体”不显示可删除移动设备
  19. 常见神经系统疾病的临床诊断及处理原则题库【2】
  20. 无需注册试用ChatGPT

热门文章

  1. Design Pattern Explained 读书笔记二——设计模式序言
  2. 基于Bind实现的DNS正反向解析及主从DNS的配置
  3. git 远程仓库版本的回退以及git reset 几种常用方式记录
  4. Windows下一个curl使用
  5. hadoop配置文件说明
  6. textarea去掉回车换行
  7. Spring事务传播特性实例解析
  8. telegram 创建机器人
  9. java jar 和 war 包的区别
  10. linux c 宏 LONG_MAX LLONG_MAX