快速入门 | 运动控制器ZHMI组态编程简介

2025-06-21 23:31:54

01 产品概述

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

控制器参考配置如下图:

快速入门 | 运动控制器ZHMI组态编程简介

(二)ZHD400X

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

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

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

快速入门 | 运动控制器ZHMI组态编程简介

使用步骤:

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

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

快速入门 | 运动控制器ZHMI组态编程简介

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

快速入门 | 运动控制器ZHMI组态编程简介

03 HMI编程方法

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

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

快速入门 | 运动控制器ZHMI组态编程简介

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

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

快速入门 | 运动控制器ZHMI组态编程简介

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

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

快速入门 | 运动控制器ZHMI组态编程简介

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

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

快速入门 | 运动控制器ZHMI组态编程简介
快速入门 | 运动控制器ZHMI组态编程简介

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

快速入门 | 运动控制器ZHMI组态编程简介

(四)添加组态元件

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

快速入门 | 运动控制器ZHMI组态编程简介

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

快速入门 | 运动控制器ZHMI组态编程简介

2.寄存器

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

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

快速入门 | 运动控制器ZHMI组态编程简介

04 组态示例程序

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

快速入门 | 运动控制器ZHMI组态编程简介

Basic程序界面:

快速入门 | 运动控制器ZHMI组态编程简介

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 sub

global sub main_scan() 'HMI周期函数

slcaxis() '选择轴

if idle=-1 then '只有在停止状态,轴参数才生效

setaxis()

endif

table(10)=DPOS '动态获取显示

table(11)=MSPEED

if idle=-1 then

state="停止"

endif

end sub

sub 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 sub

sub setaxis() '轴参数设置

units = table(0)

lspeed = table(1)

speed = table(2)

accel = table(3)

decel = table(4)

sramp = table(5)

end sub

global 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 sub

global 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="运动"

endif

end sub

global sub onstop() '停止功能键调用

state="停止"

RAPIDSTOP(2)

end sub

global sub clear_dpos() '位置清零功能键调用

dpos=0

end sub


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢