- {{item.name}}
本体集成 HSC 做外部编码器/测量输入
- 1
- 308
固件版本 V1.0 的S7-1200 G2 CPU,不支持通过本体的 HSC 输入(高速计数器)结合工艺对象来使用外部编码器和测量输入。西门子 SiePortal 上提供一个工程块库“LHSCTO”,通过它可以将 HSC 输入(高速计数器)连接到外部编码器工艺对象“TO_ExternalEncoder”用作外部编码器,连接到定位轴工艺对象“TO_PositioningAxis” 用作附加编码器还可以连接到测量输入工艺对象“TO_MeasuringInput” 作为测量输入。
1.概述
本文档简要介绍如何使用“LHSCTO”库将 CPU 本体 HSC 的增量编码器连接到外部编码器工艺对象进行位置检测和测量输入功能,如图1所示。
图1. 硬件连接图
例程中用到的主要硬件和软件:
表1-1,主要硬件列表
| 名称 | 订货号 | 固件版本 |
| CPU 1214C DC/DC/DC | 6ES7 214-1AH50-0XB0 | V1.0.2 |
表1-2,软件环境
| 名称 | 版本 | 备注 |
| STEP 7 Professional | V20 Update4 | |
| “LHSCTO”库 | LHSCTO_S71200G2_V1_0_0_TiaLib_V20.zip | SiePortal下载 |
示例中用到的“LHSCTO”库和使用手册可以在网站 SiPortal 获得档。
使用库文件时会涉及到库的打开和调用,这不是本文档要介绍的内容。关于 TIA Portl 全局库的打开和调用,请参考“全局库的打开与调用”
2.硬件组态和配置
2.1 HSC 功能参数组态
(1)使用 CPU 的板载高速输入连接一个 24V 增量编码器,同时连接外部开关作为测量输入和回零的参考开关,示例中接入 Ia.0 到 Ia.3,如图2所示。

图2. 接线图
(2)激活 CPU 的 HSC1 高速计数器,计数类型选择“计数”,运行模式“AB 计数四倍频”,如图3所示。

图3. 高速计数器设置
(3)要使用测量输入功能,需要激活高速计数器的捕捉输入,如图4所示。

图4. 激活捕捉输入
(4)配置 HSC1 使用的硬件输入通道,示例中将编码器 A/B 相接入板载输入地址 I0.0 和 I0.1,测量输入功能要启用HSC的捕捉输入,使用板载输入地址 I0.2,如图5所示。

图5. 输入地址
(5)将 HSC1 的 I/O 地址,分配给组织块 "MC_Servo",如图6所示。

图6. 分配HSC1的地址
(6)将输入通道 0/1/2/3 的输入滤波改为 0.1 µs,如图7所示。

图7. 输入滤波
2.2 “LHSCTO”库的调用
(1)将库中需要的程序块和数据类型拖入到项目中,如图8所示。拖入到项目中后程序块和 PLC 数据类型,如图9所示。
图8. 拖入所需的模板

图9. 拖入的程序块和数据类型
(2)库中块的说明
1)程序块“LHSCTO_HSCEncoder”[FB3] 建立 HSC 与编码器数据块 DB1 之间的连接,将 HSC 的状态包括计数值按照标准报文 83 的结构传递到编码器数据块 DB1 中由外部编码器工艺对象和测量输入工艺对象使用。同时将这两个工艺对象对编码器的控制字从编码器数据块 DB1 传递给 HSC,如图10所示。

图10. 工艺对象和HSC之间数据交互
2)数据块“LHSCTO_Tel83Encoder”[DB1],已经创建了标准报文 83 类型的数组,可以直接使用,如图11所示。

图11. DB1数据结构
3)“LHSCTO_ReadWriteTel83” [FB11] 和“LHSCTO_SimEncoderPulsesPTO” [FB1] 在“LHSCTO_HSCEncoder”[FB3] 中内部使用,用户无需调用,更不要修改和删除。
(3)库中块的调用
1)新建组织块 MC_PreInterpolator (OB 68),在其中调用“LHSCTO_HSCEncoder”[FB3],如图12所示。

图12. 新建 OB
2)“LHSCTO_HSCEncoder”[FB3] 的参数 hwID_HSC 填写 HSC1 的系统常数,如图13所示。

图13. HSC1 的系统常数
3)参数 Tel83 选择到“LHSCTO_Tel83Encoder”[DB1] 中的数组第一个元素,如图14所示。

图14. 编码器数据存储
本示例只是简单介绍“LHSCTO”库的使用,如果要更深入了解请参考该库的使用手册。
2.3 外部编码器工艺对象组态
(1)创建外部编码器工艺对象,在组态界面,选择数据连接为“数据块”,连接到“LHSCTO_Tel83Encoder”[DB1] 数组的第一个元素,如图15所示。

图15. 外部编码器工艺对象连接编码器
(2)与编码器进行数据交换,在组态界面填入增量编码器每转增量(本例连接的编码器每转脉冲数是 2500)。因为前面 HSC1 组态时选择了“AB 计数器四倍频”,这种相当于对编码器脉冲数做了四重评估,增加编码器信号的分辨率,所以在高精度填写 2 位,如图16所示。

图16. 外部编码器工艺对象与编码器进行数据交换
(3)外部编码器工艺对象可以被动回零。本示例中选择回零模式为“通过数字量输入作为回原点标记”,数字量输入选择 CPU 上板载的输入通道 3,地址 I0.3。回零完成后,设置当前位置为 -100.0mm,如图17所示。

图17. 外部编码器工艺对象的被动回零
(4)新增测量输入工艺对象,HSC1 启用了“捕捉输入”功能,将测量输入开关接到 CPU 板载的输入通道 2,地址 I0.2。当测量开关接通时可以输出一个实际位置值。在硬件接口中选择测量输入类型“使用 PROFIdrive 报文进行测量(驱动装置或外部编码器)”,选择测量输入编号“1”,如图18所示。

图18. 测量输入工艺对象
2.4 外部编码器工艺对象控制编程
(1)编写 MC_Power 指令,在用户程序中使能工艺对象。由于编码器的数据连接是通过程序块实现的,在编程时除了考虑编码器的状态外还要考虑“LHSCTO_HSCEncoder”[FB3] 块没有错误做为启动命令“MC_Power”的联锁信号,如图19所示。

图9. 使能外部编码器工艺对象
(2)编写 MC_Home 指令,进行被动回原点,Mode=10。激活指令后,当接到 CPU 板载的输入通道 3 上参考点开关接通再断开后,外部编码器工艺对象完成回原点,当前位置设定为"回零"组态中的值(-100.0),如图20所示。

图20. 外部编码器工艺对象回零
(3)编写 MC_MeasuringInput 指令,只支持使用 MC_MeasuringInput 指令进行一次测量。编码器开始旋转后,激活指令,当接到 CPU 板载数字量输入通道 2 端子上的开关出现一个上升沿时(Mode=0)可以输出一个实际位置值,如图21所示。

图21. 编写测量输入指令
(4)程序中使用的 PLC 变量和含义,如图22所示。

图22. PLC 变量表
3.项目测试
可以在在轴的诊断编辑器中监测编码器的状态位和错误位以及运动状态。
(1) 设置“PowerOn”为 TRUE,使能位置轴,MC_Power 指令执行,如图23所示;运行状态如图24所示。

图23. 启用编码器工艺对象

图24. 编码器工艺对象已启用
转动编码器,可以读取当前位置和速度,如图25所示。

图25. 运动状态
(2) 设置“Home”为 TRUE,对工艺对象进行回零,mode=10,按照工艺对象的组态方式进行回零作业,如图26所示。

图26. 设置的回零作业方式
将编码器正向旋转,CPU 板载输入连接的参考开关(I0.3)由接通到断开后完成设置原点位置,如图27所示,同时置位“已归位”标志,如图28所示。

图27 参考开关接通再断开

图28 工艺对象状态已归位
(3) 可以在编码器旋转过程中,设置“MI_Enable”为 TRUE,启动测量输入。当接到 CPU 板载输入点上的测量输入开关(I0.2)闭合时,如图29所示;可以在 MC_MeasuringInput 指令的 MeasuredValue1 得到测量值(97922.25)如图30所示。

图29. 测量输入开关闭合

图30. 测量输入开关闭合读取编码器当前位置值
指令行为说明:
如果 Execute 保持为 TRUE 时,Busy 为 True; 当测量信号触发测量动作后,Busy 为 FALSE,Done 和 MeasuredValue 的值会保持;
如果 Execute 变为 FALSE 时,Done 和 MeasuredValue 的值会清零。
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错



西门子官方商城


{{item.nickName}}