网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
如何在人机界面(hmi)上显示simotion的cam曲线
作者: 来源:中国机电工程网    发布于:2019-06-04 22:16:05    文字:【】【】【

1 在上显示 cam

当项目运行时,为了能在hmi上以图形方式显示项目中生成的cam曲线,目前有一个方法实现此功能,就是调用功能块 fbgetcamvalueforhmi 将cam的位置轮廓显示在hmi上。

1.1 fbgetcamvalueforhmi 功能块

在 simotion的程序单元中调用fbgetcamvalueforhmi 功能块,还需要在 winccflexible中进行相关配置。

在调用 fb功能块前,cam必须使用系统函数_interpolatecam 进行插补。

在hmi系统上显示的点数定义在数据常量 ginr_of_set_points 中,从值保存在数组中,最大的点数为 999,也就是说常量 ginr_of_set_points 不能超过 999。如果改变此常量的默认值,需在winccflexible中必须进行相应的配置。

cam图形在winccflexible中的输出是以线性类型来表示的。

功能块读出与固定主值相关的从值并且将它们写入到一个数组中。主轴距离由cam的系统变量来计算 ("leadingrange.start"-"leadingrange.end") /nr_of_set_points。系统功能块 _getcamfollowingvalue 用于读出从位置值。

注意:

由于可能会造成较高的系统负荷,所以建议此功能块在 motion task中调用。

1.2 调用fb

在插补生成 cam曲线后,可以调用 fb 块。必须在winccflexible中设置趋势指针 transfer1,它触发winccflexible中的cam曲线显示。

"trend request" 指针在winccflexible中进行设置,指示当前显示的cam。

示例: 调用fb 后,如果使用图像显示功能显示cam曲线,则在simotion中创建指针变量:

· mytrendtransfer : 在hmi中设置的指针 "trend transfer1"

· mytrendrequest : 在hmi中设置的指针 "trend request"

1.3 在winccflexible中配置hmi

"cam display" 功能用于在winccflexible中显示cam。一个 cam 需要一个 "cam buffer" , 在此数组中填入fb的 inout变量 "slavevalues" 。此外,cam显示必须通过一个指针触发。

1.4 fb的输入/输出接口

表 1-1: fbgetcamvalueforhmi 参数描述

名称参数类型数据类型描述
camincamtype被显示的cam
camtypeinenumcam mode显示带或不带比例缩放(basic / actual)
slavevaluesin/outaslavecamvalue决定从位置的数组
minslavevalueoutreal从位置的开始值
maxslavevalueoutreal从位置的结束值
minmastervalueoutreal主位置的开始值
maxmastervalueoutreal主要位置的结束值
注:参数类型in =输入参数,out =输出参数,in/out =输入/输出参数

1.5 lad 示意图

图1: fbgetcamvalueforhmi 的lad示意图

2 功能块的调用编程及hmi设置

在用户项目中,该功能是用于在上显示cam曲线。

2.1 simotion中创建cam

首先要创建cam:

图2: 创建cam曲线

2.2 simotion中cam显示功能块的编程

(1) 导入fbgetcamvalueforhmi 功能块

右键点击项目导航中的“program”,在弹出的菜单中选择“imporrt external source-st source file”导入功能块源文件:

图3: 导入st源文件

(2) 创建程序单元及全局变量

图4: 创建全局变量

(3) 在hmicamdisplay程序单元中连接功能块程序单元

图5:连接调用的程序单元

(4) 用mcc语言编辑cam曲线显示程序(调用功能块fbgetcamvalueforhmi)

图6:连接调用的程序单元

(5) 将程序分配到simotion系统执行级中

图7: 程序分配

2.3 winccflexible中hmi设置

在hmi中使用了一个特殊的方法,即在控件trendview中显示数组曲线的方法来实现cam曲线的显示:

(1) 建立simotion与hmi的连接

图8: 建立simotion与hmi的连接

(2) 创建hmi变量

仅用于显示cam曲线的变量tag有:

这些变量在simotion中已创建。其中myslavevalue为cam曲线数据,而mytrendrequest以及mytrandtransfer用于控制hmi什么时候读取cam曲线。

注意:

设置myslavevalue的访问方法为cyclic continuous或on_command:

图9: 设置myslavevalues的访问方法为cyclic continuous

(3)在hmi上插入一个显示趋势图控件trendview

在其属性->;properties->;trend中设置如下:

图10: 趋势图设置

其中samples的数量与fbgetcamvalueforhmi中获取的点数相同,在source settings中设置如下:

图11: 趋势图设置

(4) 运行测试

完成后运行屏,显示曲线画面后,mytremdrequest第0位置1:

图12: 运行测试

将mytrendtransfer设为h8001后,即将第0,15位置1后,曲线上传至hmi:

图13: 运行测试

在屏上显示cam曲线:

图14: 运行测试


浏览 (65) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人: 来源:中国机电工程网
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们