前面已经讲清右键菜单的内容和选择动作,也认识了直接运行脚本与NC的入口。这一课用主界面坐标区的原轴菜单,说明选择怎样写进共用参数,以及整行坐标怎样跟着显示或隐藏。
本篇使用标准坐标区和原轴菜单。先读懂设置的来源,再在后面的教导采点篇中看同一个设置怎样控制轴列和生成代码。
点击截图可查看原图。
坐标区从左到右显示“机械坐标”“工件坐标”和“剩余距离”;中间还显示当前工件坐标组,例如 G54。每个轴占一整行。只看右侧这块区域就能读懂本章,不需要在其他页面寻找新的设置按钮。
点击截图可查看原图。
这里应区分三件事:
| 要了解的状态 | 本例中的依据 | 含义 |
|---|---|---|
| 标准组态是否选用某轴 | #912.itemmax[0..5] |
本章讲解的轴选择标记,多个原脚本会读取它 |
| 某轴是否完成寻零 | #314.item[0..5] |
坐标行的原点图标也会使用这组状态 |
| 驱动器是否使能 | 伺服输出配置及对应 IO 状态 | 要沿连接、输出等脚本核查,不能只看轴行是否显示 |
因此,把 C 行隐藏不等于让 C 驱动器立即断使能,也不等于把 C 轴的寻零状态清掉。
使用软件原有登录入口取得开发者权限,再在“机械坐标”标题上点击鼠标右键,松开后出现原菜单。
点击截图可查看原图。
标题控件 label_23 在 env/maininterface/maininterface.ui 中有这条属性:
-A:(rightMouseButtonRelease:/env/program/coordcnfmenu[0])
可按顺序读成:右键松开 → 调用 coordcnfmenu → 使用属性中指定的通道。[0] 是本系统的通道写法,不是菜单第0项。其他通道规则见前面的菜单篇。
原 env/program/coordcnfmenu 只有三行:
IF#1026.item[0]!=2GOTO1
widgetFunc["PopMenu","","",912]
N1
第一句检查当前权限。不是2就直接跳到结尾;等于2才用参数 #912 建立菜单。因此,这个入口只在开发者权限下弹出轴配置菜单。
“工件坐标”等原标题也配置了相同入口,所以不必在每个标题后复制一份菜单内容。
#912 既保存菜单内容,也存放这套标准组态使用的轴标记。它的菜单前面有一个标题项和一个分隔项,因此C轴是菜单第7项,轴标记却是第5项。两种下标都从0开始。
| 轴 | 菜单项下标 | 选择标记 | 当前值为1时 |
|---|---|---|---|
| X | 2 | #912.itemmax[0] |
选用X |
| Y | 3 | #912.itemmax[1] |
选用Y |
| Z | 4 | #912.itemmax[2] |
选用Z |
| A | 5 | #912.itemmax[3] |
选用A |
| B | 6 | #912.itemmax[4] |
选用B |
| C | 7 | #912.itemmax[5] |
选用C |
C菜单项的几个字段分别负责不同事情:
#912 中的字段 |
当前配置 | 用途 |
|---|---|---|
itemtitle[7] |
C轴 |
菜单上看到的名称;英文语言包是 C-axis |
itemdesc[7] |
下面的动作文字 | 点击后切换标记并调用脚本 |
item[7] |
下面的两行规则 | 决定是否显示勾选 |
itemversion[7] |
1 |
菜单动作使用的脚本通道 |
itemmax[5] |
1或0 |
其他页面与脚本读取的C轴标记 |
动作文字原文:
/env/funcscripts/menuconfig<<#912itemmax5=1-#912itemmax5
当原值为1,1-1得到0;再次点击,1-0得到1。菜单处理先计算 << 后附带的表达式,再分派前面的回调脚本。menuconfig 在这里承担原菜单刷新工作;不是它在决定C轴的新值。
勾选规则原文:
-C(#912itemmax5==1)
-R0
这里的 -R0 用在菜单项上,表示按条件0设置勾选状态。不能把输入框的“只读”解释搬过来。这个例子也说明,itemmax 虽然通常可用来保存参数上限,在这份标准设计中却被选作轴标记的存放位置;应按实际读写用途理解,不能只猜字段名称。
点击菜单里的“C轴”,取消勾选。
点击截图可查看原图。
再次打开菜单,C轴的勾选也消失:
点击截图可查看原图。
原C轴容器名为 frame_24,它的相关属性是:
-C(#912itemmax5==1)
-V0
-C(...) 定义条件0;-V0 把该条件用于可见性。当标记为0,隐藏的是装着C轴名称、图标和坐标框的整行容器。这样不必分别给每个小控件重复写隐藏逻辑。
六轴对应的原容器如下:
| X | Y | Z | A | B | C |
|---|---|---|---|---|---|
frame_14 |
frame_15 |
frame_20 |
frame_21 |
frame_23 |
frame_24 |
不要因为这一段没有 -D 就认为不会更新。当前控件处理也会根据可见性条件登记需要更新的对象;-D 的文字刷新作用和 -V 的显示条件是两件事。
在同一个菜单中重新勾选C轴,标记恢复为1,坐标行随即显示:
点击截图可查看原图。
菜单勾选和坐标行显隐读取的是同一个参数。实际机床需要使用哪些轴,应与机台配置保持一致;其他标准功能也会读取这些标记,下一节继续说明。
菜单标题叫“坐标显示轴配置”,但原组态已经在更多位置使用这些标记。理解这个范围后,才能知道为什么不宜把它当作随意隐藏画面的开关。
| 原功能和文件 | 怎样使用轴标记 | 阅读时应注意 |
|---|---|---|
加工启动 env/start |
与机型、仿真及寻零设置等条件一起决定是否检查该轴寻零完成 | 不是只要选轴就一律要求回零;见加工流程 |
手轮选轴 env/mpg/mpg_axis_changed |
检查新选择的轴是否被选用 | 还要结合手轮自身状态;见手动操作 |
连接处理 env/netlink |
与伺服输出端口配置一起决定是否写该轴输出 | 在连接处理中执行;轴菜单的勾选不能代替伺服使能控制 |
周期检查 env/timer |
与输入端口等条件一起决定是否检查该轴伺服报警 | 不能用取消轴选择来代替排除设备故障 |
坐标存取 env/coordinate/savecoord、loadcoord |
过滤要保存、恢复的轴 | 见坐标存取 |
先分清两个时刻:点击菜单后,内存中的 #912.itemmax[5] 已经改变;配置文件是否保存,需要另看保存流程。
menuconfig 负责刷新菜单。参数保存由退出流程处理:独立应用正常关闭时运行 env/close,其中调用:
widgetFunc["SysFunc","","saveParamBak",0]
对应内置处理把参数写入备份。独立应用使用 setting-bak0;客户端使用与自身配置对应的备份名称。启动时先读取环境配置,再读取有效的参数备份;文件存在情况、保存时间和版本检查共同决定采用哪份备份。
保留轴选择时,应使用软件的正常退出入口,并在同一配置目录、同一种启动方式下重新打开。强制结束进程会绕过正常退出流程。遇到设置没有保留的情况,应检查退出保存和启动读取所用的配置目录及备份文件。
菜单不出现时,检查开发者权限和右键释放事件;勾选不对时,对照菜单项下标与轴下标;坐标行不跟着变化时,检查是否读取同一个标记;重新打开后选择丢失时,检查配置目录与备份处理。