AI大模型教程
一起来学习

GraniStudio软件实现状态机模式:状态机项目案例分享

一、整体概述

状态机流程案例基于固高卡实现自动化控制,支持两轴 PTP 运动控制,通过 IO读写完成设备信号交互。包含完整控制逻辑:设备启动、设备复位,暂停/继续、停止功能,根据案例模版用户可自行进行修改,减少开发时间。

二、案例配置使用硬件资源:

1.固高GTS系列多轴通用运动控制器。
2.固高GT2-800-ACC2-VB-G-A端子板。

三、案例位置:

GraniStuidio平台软件安装目录下“SolutionSetting示例运动控制状态机项目示例”中。

四、打开案例方式:

第一种:找到GraniStuidio平台软件安装目录下“SolutionSetting示例运动控制状态机项目示例”文件,双击“状态机项目示例.gsp”文件,等待平台软件打开。

第二种:打开GraniStuid软件,点击示例,自动弹出示例文件路径。

打开“SolutionSetting示例运动控制状态机项目示例”,选择“状态机项目示例.gsp”文件,点击打开。

五、案例说明:

1.资源管理器:

平台上资源管理器、主任务设计器、HMI用户自定义设计器使用的模块支持重命名操作,通过赋予模块直观且具业务关联性的名称让流程清晰易懂,鼠标选中使用模块,右键单击弹出菜单栏,点击重命名按钮进行修改即可。

定义变量:使用全局变量算子事先定义开始、停止、暂停、复位等bool变量作为控制信号,划分流程的不同阶段,防止重复触发或者冲突操作,保证设备操作安全可控。

初始化固高:使用初始化运控板卡算子连接固高GST8轴卡,配置界面上“品牌”项下拉列表选择“固高”,GTS属于脉冲卡,类型项选择“脉冲卡”,“型号”下拉列表选择GTS,点击初始化即可实现连接。

添加轴对象:GS平台将轴做为一个对象使用,需控制多少轴使用轴对象算子增加对象即可,轴对象算子可对每个轴对象中设置初始参数以及导程,固高卡共有8个轴,导程为36000,添加8个轴后在导程列实际导程,点击执行完成轴对象添加。

初始化IO对象:使用初始化IO对象算子初始化IO资源,设备IO模版使用的是GTS配套的端子板,GS平台对此端子板的设定为板卡自带,所以初始化IO对象品牌选择固高,支持类型选择板卡自带,即为控制板子板输入输出。

IO配置:使用IO配置算子将制作的IO表导入输出,供主任务设计器IO控制相关算子使用。

控制IO需要制作电气IO表,平台提供了电气IO表模版,初此使用IO配置算子时默认显示模版文件,下载模版文件另存为一份,点击保存。


打开存储的路径文件,根据实际进行修改,IOType列填写DI或者DO,表示输入和输出,Name列表示名称,CardType列表示IO类型,CardId列表示卡号,PortId列表示IO点位所在端口号,value列表示默认点位值,Tag列表示缺省值,Remark列表示点位备注。

2.主任务设计器

主任务设计器包含5个流程,对应HMI界面开始、暂停、停止、复位以及继续功能。

2.1 设备初次使用前首先进行复位操作,根据流程图进行说明,复位流程如下图所示:

定义状态机变量:通过局部变量先定义两个变量,用于控制复位运行逻辑,定义两个变量的目的是为暂停和继续功能使用,意义复位步序变量用于告诉设备下一步应该做的动作,存储步序用于通知复位步序下一步可以做的动作,设备正常执行动作时通过修改存储步序变量控制下一步可以做的动作,不出现暂停时将存储步序变量赋值给复位步序变量,控制执行下一步动作,出现暂停将复位步序变量赋值给存储步序变量,控制逻辑回到暂停前的步序,即实现暂停和继续。

通过修改变量算子将开始、暂停、停止等恢复成默认值,让逻辑运行不会出现运行混乱。

判断停止:判断停止变量通过循环算子实现,循环算子配置为无限循环,控制复位流程在执行时不主动结束,让循环算子LoopNode节点后的算子处于轮询中,通过定义的停止变量控制循环是否继续运行即可,停止变量赋值为true时循环算子达成停止条件,退出循环。

使用循环算子可增加一个延时算子,循环算子相当于编程中的while,使用时会占用大量CPU,需要通过延时算子减少占用。

判断暂停:使用条件分支算子判断暂停变量控制流程是否能够继续执行,为false说明可以继续执行,为true说明按下暂停,不继续执行动作

判断状态机变量:使用多分支工具实现判断状态机变量,多分支工具支持字符串、整数以及数值范围三种对比格式,案例使用字符串格式进行,编写配置引用局部变量中的复位步序,引用复位步序,根据流程图上复位步序的具体动作过程增加复位所需要的分支步序,配置动作名称,在执行时多分支算子根据复位步序变量和增加的分支步序名称做对比,相同则执行对应分支内搭建的算子。

多分支下具体动作:吸气关闭气缸下降-轴1234复位-轴5678复位-复位完成,

吸气关闭气缸下降:使用IO写入算子控制设备顶升气缸下降以及吹气关闭,算子引用资源管理器初始化IO对象算子输出对象实现控制IO,引用IO配置输出IO表资源实现配置控制需写入的IO点位以及写入值。


设置状态机变量为轴1234复位:写入完成后这一步动作结束,通过修改变量算子改变存储步序变量值,让设备下一步做“轴1234”复位动作。

轴1234复位:通过轴复位控制轴1到4号轴同时复位,轴复位算子控制轴复位会等待配置的所有轴在不出现报警时都完成复位才会结束运行,引用初始化运控板卡对象,GS平台在复位方法上,提供了丰富且专业的12 种回零模式,全面覆盖各类工业场景需求。其中 6 种基础模式包括:

GH_Positive_Limit:此模式以正限位为原点,正限位回零是指轴从当前位置向正方向移动,直至触发正限位开关,然后反向低速移动至原点开关,最终确定机械零点位置的回零模式。此模式通过正限位开关作为初始定位参考,结合原点开关的精确定位,建立轴的绝对坐标系。

GH_Negative_Limit:负限位回零与正限位回零相反,轴从当前位置向负方向移动,触发负限位开关后,再正向低速移动至原点开关,最终确定机械零点。其原理与正限位回零一致,但运动方向相反。

GH_HomePositive_Limit和GH_HomeNegative_Limit:此模块以正方向/负方向搜索原点,搜到到原点信号即停止运动,如果搜索不到会不停重复搜索,GH_HomePositive_Limit和GH_HomeNegative_Limit回零依赖编码器位置(轴初始化位置)。

:此种回零方式为无论轴处于何种位置先寻找正限位开关/负限位开关,搜索到限位开关后到再沿着反方向寻找原点信号,搜索到原点信号后轴停止运行,确认机械零点位置。使用GH_PositiveHome_Limit和GH_NegativeHome_Limit回零模式尤其适用于对位置精度、设备安全性要求较高的场景。

此外,平台还支持上述 6 种模式对应的带 Z 向信号回零模式,Z向信号通常来自编码器等反馈设备,能提供更精准的位置校准参考,在需要高精度回零的场景,如精密加工、半导体制造中,带Z向信号的回零模式可显著提升回零精度与可靠性,使用时根据设备需求选择对应方法使用。

配置轴1234复位参数。


**判断复位是否完成:**使用轴复位算子后通过条件分支算子判断复位是否全部成功,出现没有复位成功的轴时轴复位算子状态变量会给出false。


复位失败使用弹窗算子制作报警弹窗进行提示,算子支持配置报警信息、弹窗类型(错误、停止、警告等)以及解决方法信息。


弹窗报警弹窗后控制复位流程停止运行,使用运行流程算子触发设备停止流程执行,配置等待执行流程结束,在这里不写控制停止需要使用的算子,重复性高的动作可放到一个流程内,通过运行流程算子调用执行,减少搭建过程,提升开发效率。

复位成功同样的使用修改变量算子修改存储变量,控制设备运行下一步轴5678复位。


轴5678复位逻辑和轴1234复位一致。

复位完成后使用修改变量设置复位变量为true,表示设备已经复位成功,设置停止变量为true,循环算子停止循环条件成功,复位流程运行结束。

2.2 设备运行流程

设备运行流程实现功能请看下方流程图:

设备运行流程和复位流程结构相同,都是状态机设计模式,实现功能不同,此处设计包含两个轴的PTP运动、IO读取、IO写入等功能,用户根据需要,对流程功能自行增加删除,依照多分支节点,自行取舍修改。

定义状态机变量:通过局部变量先定义两个变量,用于控制设备运行逻辑,变量意义请查看对复位流程的说明。


判断设备是否复位:使用条件分支判断复位变量值,为true说明复位成功可继续运行,为false说明复位失败,通过弹窗算子弹窗提示未复位,流程执行结束。


通过修改变量算子将开始、暂停、停止等恢复成默认值,让逻辑运行不会出现运行混乱。


控制顶升气缸下降以及关闭吹气:使用IO写入算子控制DO,作用为设备启动前的防护工作。


判断停止:判断停止变量通过循环算子实现,循环算子配置为无限循环,控制设备运行流程在执行时不主动结束,让循环算子LoopNode节点后的算子处于轮询中,通过定义的停止变量控制循环是否继续运行即可,停止变量赋值为true时循环算子达成停止条件,退出循环。


判断暂停:使用条件分支算子判断暂停变量控制流程是否能够继续执行,为false说明可以继续执行,为true说明按下暂停,不继续执行动作。


判断状态机变量:使用多分支工具判断案例状态变量值,控制执行动作,引用案例状态,根据流程图增加7个动作分支并赋予分支名称。

设备轴到等待工作位:使用轴自动算子控制轴1与轴2PTP运动,轴自动算子通过引用初始化运控板卡输出板卡对象实现单轴PTP控制,配置界面其他参数用于实现设置PTP运动参数,轴号下拉列表显示控制轴号,未通过轴对象算子配置轴下拉列表无可控制轴,配置速度、加减速度、运行位置等参数。


同样使用轴自动算子完成分支后使用修改变量算子将案例步序修改到下一步。


读取启动信号:读取启动信号分支通过IO读取算子实现读取启动DI,算子引用初始化IO对象算子输出资源以及IO配置算子输出IO表,引用IO表资源后在IO数据下拉列表自动显示DI信息,将启动信号添加到表,即可读取启动信号并将读取结果输出。


读取后通过条件分支算子引用读取启动信号结果,信号值为0说明启动信号被触发可进行下一步,对案例状态赋值,不为0不进行下一步。


设备吹气:使用IO写入算子控制DO信号,引用IO配置算子输出IO表在IO数据下拉列表自动显示DO数据,添加吹气DO控制。

轴1到工作位置:使用轴自动算子控制轴1做PTP运动。


气缸顶升:使用IO写入算子控制DO信号。

轴2到工作位置:使用轴自动算子控制轴2做PTP运动。

气缸下降吹气关闭:再使用IO写入算子控制气缸与吹气恢复,到此设备整个的一轮运行动作结束,通过修改变量将案例状态修改到设备运行的第一步即可实现设备长时运行。

2.3 设备暂停流程

设备暂停流程通过修改变量算子将暂停变量设置true。

2.4 设备停止流程

设备停止流程通过修改变量算子将停止变量设置true,开始以及暂停变量设置false。

2.5 继续流程

继续流程通过修改变量算子将暂停变量设置false。

3.HMI设计器:

HMI主要用到控件:按钮控件、轴手动控件、轴自动控件。

HMI提供人机操作功能,支持设置背景色以及尺寸。

其中按钮控件包括复位、开始、暂停、继续和停止,通过这5个按钮执行主任务设计器流程,开始按钮绑定设备运行流程,复位按钮绑定复位流程,暂停按钮绑定控制设备暂停,继续按钮绑定继续流程,停止按钮绑定设备停止,运行HMI鼠标单击按钮即可触发对应绑定流程执行。

按钮控件配置例如开始按钮,在配置界面文本框内输出显示名称为开始,配置尺寸以及文字大小参数。

通过鼠标单击按钮触发主任务设计器流程执行的功能使用事件管理器完成,打开事件管理器。

为5个按钮都对鼠标单击事件进行了绑定。

在事件源列内包含了主窗体,主窗体内显示窗体上所有控件,事件列包含支持控件绑定的键盘事件、鼠标事件以及窗体事件,事件触发方法通过方法列显示流程进行绑定,例如开始按钮绑定设备运行流程,在主窗体选择开始按钮。

在键盘事件选择鼠标指针单击事件。

在方法列选择设备运行流程。

点击添加事件完成绑定。

运行HMI,点击开始按钮,设备运行流程被执行。

轴自动控件用于手动控制轴做PTP运动,控件引用初始化运控板卡,设置运动模式为绝对运动,运行HMI选择控制轴,输入运行参数后通过正向或者负向按钮实现控制。

轴手动控件用于手动控制轴做jog运动,控件引用初始化运控板卡,运行HMI选择控制轴,输入运行参数通过正向或者负向按钮实现控制。

文章来源于互联网:GraniStudio软件实现状态机模式:状态机项目案例分享

相关推荐: 如何设计高效稳定的工作流:基于文心一言的智能体调用与管理全景指南

在现代智能系统中,稳定的工作流设计是确保任务高效且顺利完成的关键之一。随着 AI 技术的不断发展,越来越多的企业和开发者开始借助 AI 助手(如文心一言)来执行日常任务、数据处理及复杂的业务逻辑。然而,如何设计一个稳定、可控、可调节的工作流,确保每一步都能无缝…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » GraniStudio软件实现状态机模式:状态机项目案例分享
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们