• {{item.name}}
{{item.name}}
{{item2.name}}
更多
常问问题

如何在SIMOTION程序中读写工艺对象的配置数据

star star star star star
5.0 分
  • 使用操作
文档编号:F0325| 文档类型:常问问题| 发布时间:2024年02月29日
  • 0
  • 113
  • 5893
本文描述了如何在SIMOTION程序中读写工艺对象的配置数据。

1 问题提出
SIMOTION 在实际应用中,有时需要在运行中读写工艺对象的配置数据。例如,根据不同的生产需求改变的设备单位长度,这时可能需要修改轴的配置数据“模态长度”(Modulo Length)。在SIMOTION中,工艺对象配置数据的读写不同于系统变量和其他类型的变量。


2 配置数据(Configuration Data)
配置数据定义了一个工艺对象的基本功能,通常在工艺对象的配置阶段,用SIMOTION SCOUT软件进行设置。大部分的配置数据是不能在系统运行中修改的。但是,也有一部分配置数据可以在程序中修改。一个配置数据是否能被在线修改可以查看参数的属性“Changeable online”(查看手册“SIMOTION technology package configuration data List Manual”)。

分为三种情况(图1):

1)不能在线修改
这种配置数据只能在用SIMOTION SCOUT 离线配置工艺对象时修改。

2)可以在线修改,重新启动工艺对象后起作用
在线修改后,修改后的数据并不立即起作用,而是存储于存储器的缓存中(Next value),重启工艺对象后修改后的值起作用(Next value 的值拷贝到current value中)。

3)可以在线修改,立即起作用
这种配置数据在程序中修改后立即起作用。
如果想保存在线修改的配置数据到CF卡中需要执行"Copy current data to RAM"和 "Copy from RAM to ROM",或者在程序中调用函数“_saveConfigData”。


图1


3 在线读取配置数据
在程序中有两种方法可以读出配置数据。

1) 直接访问当前使用的配置数据(current value中的数据),格式是:
TO-name.activeconfigdata.config-date
直接访问已设置的数据(Next value中的数据),格式是:
TO-name. setconfigdata.config-date
例如,在ST程序中访问一个轴的模态长度值Axis_1.Modulo.length,这个参数的在线修改类型符合上述第二种情况:
VAR
lreal_var : LREAL;
END_VAR;
lreal_var := Axis_1.setconfigdata.Modulo.length;
// Read access to saved value
lreal_var := Axis_1. activeconfigdata.Modulo.length;
// Read access to value currently in effect
当访问出错时,会调用ExecutionFaultTask。

2)通过函数_getSafeValue访问
可以通过函数返回值判断配置数据的访问是否成功,还可以指定在访问出错时系统执行的操作。
例如:
VAR
lreal_var : LREAL;
myRetANY :EnumSetAndGetSafeValue;
END_VAR;
myRetANY := _getsafevalue(Axis_1. activeconfigdata.Modulo.length, NO_CHANGE, lreal_var );

4 在线修改配置数据

同样有两种方法可以修改配置数据,例如

1)直接访问,格式是 TO-name. setconfigdata.config-date。
例如:
Axis_1.setconfigdata.Modulo.length:=100;
当访问出错时,会调用ExecutionFaultTask。

2)通过函数_setSafeValue 。
可以通过函数返回值判断配置数据的修改是否成功,还可以指定在访问出错时系统执行的操作。
VAR
myRetANY :EnumSetAndGetSafeValue;
END_VAR;
myRetANY := _setSafeValue (Axis_1.setconfigdata.Modulo.length, 100,NO_CHANGE);
对于像模态长度这种需要重启有效的配置数据,修改后的数据保存在RAM(Next value)中,工艺对象的重新启动后修改的数据有效。

5 工艺对象的重新启动
工艺对象重新启动时会退出当前的所有操作,重新初始化。如何重新启动工艺对象取决于配置数据TO.Restart.restartActivationSetting的设置:

1)TO.restart.restartActivationSetting = RESTART_BY_COMMAND:
通过调用工艺对象相应的函数执行重启操作。例如重启一个轴,要调用函数 _resetaxis:
myRetDINT :=
_resetaxis(
axis := AXIS_1, // 轴的名字
userdefaultdata := DO_NOT_CHANGE , //是否恢复配置数据(Configured数据)
activaterestart := RESTART_ACTIVATION //是否重新启动,一定要选择重新启动
);

2)restart.restartActivationSetting = RESTART_BY_SYSVAR_AND_COMMAND:
此设置下,除了可以使用上述调用函数的方法,还可以通过设置系统变量重启工艺对象。设置TO. activateRestart = ACTIVATE_RESTART ,工艺对象开始复位过程,完成后TO. activateRestart自动回到NO_RESTART_ACTIVATION状态。

关键词
SIMOTION, 配置数据,工艺对象


您可以前往全球资源库查看此文档

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。