Simotion连接FM350模块

n

一、概述
本章描述了FM350模块在 SIMOTION 系统及 SIMATIC 系统中运行的相同及不同之处,它做为SIMATIC 手册“FM 350–1 Function Module Installation and Parameter Assignment”的补充部分。
对于Simotion系统,需要下述软件版本:
• SIMOTION SCOUT V4.0 或更高
• SIMOTION Kernel V4.0或更高
• SIMOTION technology packages V4.0或更高
Simotion 功能块不支持FM 350-1 模块(订货号:6ES7 350-1AH03-0AE0)的下述新功能:
• 同步模式
• 测量模式 (频率测量,速度测量,周期测量)n

二、产品描述

FM 350-1
FM 350-1 计数模块是一个单通道的高速计数模块,计数范围为:
• 0 to 232 - 1
• -231 to 231 - 1
计数信号的最大输入频率为 500 kHz。
FM 350-1 可用于下述计数任务:
• 连续计数(Continuous counting)
• 单一计数(Single counting)
• 周期性计数(Periodic counting)
可通过用户程序 (software gate) 或通过外部信号(hardware gate) 开始及停止计数过程。n

功能块
需要使用功能块控制FM350-1模块,对于SIMOTION系统中所使用的功能块在本入门中会详细进行阐述。n

功能模块的特性
功能模块在 SIMOTION 系统及SIMATIC S7 自动化系统中有相同的功能,但是数据传输的执行及功能模块的使用要适合 SIMOTION 的边界条件。n

可能的应用
除了SIMATIC 手册中描述的可能应用外,FM 350-1功能模块也可用于SIMOTION 系统。功能模块可用于SIMOTION C2xx 的集中安装,也可用于SIMOTION C2xx, SIMOTION P350 及 SIMOTION D4xx的分布式安装。
一个SIMOTION 设备可以安装多个 FM 350-1模块。
通过 ET 200M 分布式 I/O 设备 IM153-1 可将FM 350-1连接至SIMOTION 设备 (如: SIMOTION C2xx):n

Simotion连接FM350模块
图1.n

三、安装及连接
通过SIMOTION系统控制FM350需执行下述步骤:
分布式应用(SIMOTION C2xx, SIMOTION P350 及 SIMOTION D4xx):
1. 安装ET 200M分布式 I/O 设备并接线。
2. 建立SIMOTION 与ET 200M 的PROFIBUS连接。
3. 设置ET200M PROFIBUS DP 的节点地址。
4. 将第一个总线结点及最后一个总线节点的终端电阻打到 ON 位置。
1-4的详细描述请参看“ET 200M Distributed I/O”手册
5. 插入 FM 350-1至 SIMOTION 项目中。
6. 分配 FM 350-1模块参数。
在SIMATIC 手册“FM 350-1 Function Module, Installation and Parameter
Assignment manual”中描述了如何安装及分配参数。
7. 在 SIMOTION 项目中集成FM350控制功能块。
集中式应用 (仅用于 SIMOTION C2xx):
1. 如何进行SIMOTION 组件的集中式安装请参看
“SIMOTION C2xx operating guide”及“SIMATIC S7-300 Automation System, Installation”安装手册。
2. 参看分布式应用的步骤 5 – 7。n

四、在SIMOTION项目中插入功能模块

1.硬件组态 FM 350-1(分布式应用)
(1)在 SIMOTION SCOUT中,打开用户项目。
(2)打开硬件组态画面。
(3)在硬件组态画面中,通过View > Catalog 菜单打开目录
(4)在硬件目录中,打开 PROFIBUS DP 文件夹,在 ET 200M 文件夹下选择IM153-1接口模块将其拖曳到DP总线上,之后为其设置站地址。n

Simotion连接FM350模块
图2.n

(5)在IM151中插入高速计数模块FM350
(6)保存并编译项目n

2.在用户项目中集成FM 350-1控制功能块
创建I/O变量

对于数据传送,FM350的模块地址被传送到FB的输入参数,I/O 变量被用于I/O的直接读/写访问。
在SIMOTION SCOUT中可以为I/O变量定义名称,必须指定为ARRAY[0..15] of BYTE数据类型。
I/O 输入变量的名字必须赋给功能块的相应输入参数(periIn),必须为FB块的in/out参数(periOut)提供一个 ARRAY [0..15] of BYTE数据类型的变量,功能块被调用后,必须将此变量赋值给用于I/O 输出的I/O变量中。n

Simotion连接FM350模块
图3.n

使用 LAD 编程语言调用控制功能块
FM350-1的控制功能块在“SIMOTION SCOUT” 中的“command library” 中提供。此功能块的使用需要在用户程序中为其创建背景数据块。
(1)在程序单元中创建全局变量:n

Simotion连接FM350模块
图4.n

(2)在程序单元中调用FM350控制功能块:n

Simotion连接FM350模块

Simotion连接FM350模块
图5.n

使用 ST 编程语言调用功能块

在用户项目中创建 FBs 的背景数据块
示例:n

VAR_GLOBAL
...
myInstFM3501Ctrl : _FM3501_control ; // Create instance of FB
myInstFM3501Diag : _FM3501_diagnostic ; // Create instance of FB...
...n

END_VARn

Simotion连接FM350模块
图6.n

五、FM350-1功能块

1.概述
本章描述了FM 350-1功能模块 (FBs) 参数分配的数据结构,控制及调试。
功能块必须在用户程序中循环调用。
包含下述功能模块:
• _FM3501_control
• _FM3501_diagnostic
SIMOTION SCOUT 包含需要的 FBs 功能块及FM 350-1的数据结构“ Struct_FM3501_fmData”。功能模块用于控制一个或多个FM 350-1模块。n

2.功能块“_FM3501_control”
“_FM3501_control”功能块用于FM 350-1模块的控制及状态的扫描。n

LAD表示方式:

Simotion连接FM350模块

参数描述:
periIn:
输入,数据类型:ARRAY [0 to 15] of BYTE ,传送FM 的 I/O 输入给FB。
enableSwGate:
输入,数据类型:BOOL,使能计数器控制的软件门。
enableStopGate:
输入,数据类型:BOOL,停止计数器控制的软件门。
cntrRange:
输入,数据类型:BOOL,FM计数范围的限制设置:
FALSE:
-231≤ count value < 231-1
TRUE:
0 ≤ count value < 232-1
execResetOpError:
输入,数据类型:BOOL,通过此信号的上升沿确认运行错误。
data
输入/输出,数据类型:Struct_FM3501_fmData
setStartValue
输入/输出,数据类型:BOOL,传送 "direct loading"的触发位。将预置值传送到装载存贮器并且直接用于计数。
setPrepStartValue
输入/输出,数据类型:BOOL,传送"preparatory loading"的触发位。
仅将预置值传送到装载存贮器。存贮器中的预置值在下次触发时被传送 (FM input "DI set" - set counter),需满足下述条件:
- enableReverseSetting = TRUE (数据结构 "truct_FM3501_fmData"中的元素)

- enableForwardSetting = TRUE (数据结构 "truct_FM3501_fmData"中的元素)
setCmpValue1
输入/输出,数据类型:BOOL,传送"comparison value1"的触发位。
setCmpValue2
输入/输出,数据类型:BOOL,传送"comparison value2"的触发位。
resetSyncState
输入/输出,数据类型:BOOL,删除"synchronization"状态位。
resetCntrState
输入/输出,数据类型:BOOL,删除"zero crossing"状态位。
periOut
输入/输出,数据类型:ARRAY [0 to 15] of BYTE,用于FM的I/O输出的FB的准备数据。
注意: periOut 参数必须定义为数组类型ARRAY [0..15] of BYTE的变量,此变量必须在用户程序中创建为一个本地或全局的变量(在程序的VAR下面创建),而不要创建一个临时变量(在VAR_TEMP下面创建)。在 FB 被调用后,此数组必须被分配给用于模块I/O输出的 I/O 变量,请参看示例程序。
errorOperation
输出,数据类型:BOOL,运行错误产生指示。
startup
输出,数据类型:BOOL,指示FM模块的运行开始。n

功能
“_FM3501_control”功能块周期性地从类型为“Struct_FM3501_fmData”的数据结构传送数据给FM 350-1。它还从FM 350-1 读取数据并将其写入数据结构。
注意:
“cntrRange”输入参数必须按照FM 350-1模块分配的计数范围限制来进行设置:
• cntrRange: = FALSE,计数范围为 -231 ≤ count value < 231 – 1:
– loadValue1, cmpValue1_1, cmpValue2_1 从 FB 写入到 FM模块中。
– 从FM模块中读取actValue1, actCntrValue1。
• cntrRange: = TRUE, 计数范围为0 ≤ count value < 232 – 1:
– loadValue2, cmpValue1_2, cmpValue2_2从 FB 写入到 FM模块中。
– 从FM模块中读取 actValue2, actCntrValue2。
在高速计数器的参数化工具中必须选择与其相同的计数范围。n

任务调用
“_FM3501_control”功能块必须在“BackgroundTask”或“TimerInterruptTask”中周期性调用,不允许在“SystemInterruptTask”中进行调用,出于运行时间的原因不建议在“IPOSynchronousTask”中进行调用。
对于FM 350-1,可通过适当的参数(setStartValue,setPrepStartValue, setCmpValue1, setCmpValue2,resetSyncState, resetCntrState, execResetOpError, enableStopGate, enableSwGate)来开始某一项工作。在每次调用前应根据相应的工作在数据结构中输入装载值或比较值。n

启动行为
当“_FM3501_control”功能块监测到 FM 350-1 正在启动,任何未决的工作被延期直到起动被确认。FM 350-1的启动通过输出参数startup=TRUE指示。一旦起动完成后再执行未决工作。n

调用 FB 期间的错误信息
如果在调用 FB 期间有错误产生,它在“errorOperation” 参数中指示。可在数据结构的“errorIdOperation”元素中读出错误信息。可使用“execResetOpError”参数确认错误。
错误代码
在数据结构的“errorIdOperation”元素中显示错误代码n

代码 描述

代码 描述
0 无错误
1 使用软件门不能开始运行模式
2 运行模式不能被中止
4 如果有一个未决的输出不使能才允许此功能

3.功能块“_FM3501_diagnostic”
“_FM3501_diagnostic”功能块可用于读取FM 350-1 的完整诊断数据。
LAD表示方式:n

Simotion连接FM350模块

参数描述:
data
输入/输出,数据类型:Struct_FM3501_fmData
计数数据及诊断数据的数据结构。
execute
输入/输出,数据类型:BOOL,用于诊断数据的触发位。
done
输出,数据类型:BOOL,工作完成无错误信息。
status
输出,数据类型:DINT,返回值(error ID) 2)n

功能描述
从“_FM3501_diagnostic”功能块中读取诊断数据。从功能块的输出参数中读出返回值 (error ID)。
顺序:
1. 如果设置输入/输出参数 execute = TRUE,从FM 350-1中读取诊断数据。
2. 数据被输入至_FM3501_diagnostic 功能块的数据结构中。
3. 返回值(error ID)被拷贝到_FM3501_diagnostic的背景数据块的状态参数中。
4. 当功能执行完成,复位参数 parameterexecute。n

任务调用
“_FM3501_diagnostic”功能块可在“PeripheralFaultTask,
BackgroundTask,TimerInterruptTask”中进行调用。由于性能原因,功能块要在“PeripheralFaultTask”中进行调用。n

4.FM350-1的数据结构
Struct_FM3501_fmData 的数据结构类型包含FM 350-1的控制及检查信号及诊断数据。
数据结构被“_FM3501_control”及“_FM3501_diagnostic”功能块使用。
数据结构的元素使用Struct_FM3501_fmData数据类型被访问。
Struct_FM3501_fmData 的数据结构n

Simotion连接FM350模块

Simotion连接FM350模块

Simotion连接FM350模块

5.功能块调用
(1)创建功能块“FB _FM3501_control”的背景数据
(2)为数据结构设置变量
(3)为FB的输入/输出参数创建一个数组
(4)调用功能块
(5)传送输入参数
(6)访问FB的输出参数。
(7)对于I/O输出,通过FB的数据准备被分配一个步骤3中创建的I/O变量数组。
调用示例:n

Simotion连接FM350模块

Simotion连接FM350模块

图7.n

注意:
必须将编好的程序分配到系统执行级中。n

五、FM350-1应用程序示例

1.使用的输入符号

Simotion连接FM350模块

2.使用的输出符号

Simotion连接FM350模块

注意:
按照使用的信号类型,应注意FM350-1的编码器电源跳线块(如,位置 D 用于 24 V 信号)。n

3.示例内容
(1)当“_FM3501_control”功能块被调用时,在SIMOTION设备与FM 350-
1间循环交换控制及检查信号。模块所有相关数据位于数据结构“dataFM3501”中。
(2)按照 FM 350-1 的配置模式,例如当输入"myStateSwGate" 为"TRUE"时,FM 350-1 计数;如果输入"myStateSwGate" = FALSE或"myEnableStopGate" = TRUE时,FM 350-1停止计数。
(3)传送预置值
两个参数用于传送FM 350-1的预置值。当调用“_FM3501_control”功能块时,"myLoadStartValue" 或 "myLoadPrepareStartValue"参数的上升沿用于将预置值直接传送至计数器或传送至装载寄存器。
(4)装载比较值
通过设置输入参数"myLoadComparisonValue1" 或 "myLoadComparisonValue2" 的上升沿,输入新的比较值被传送至FM。
(5)删除状态位
通过设置输入参数"myResetSyncState"的上升沿,复位同步状态位。并且通过设置输入参数"myResetCntrState"的上升沿,复位zero crossing/overflow/underflow 的状态位。

程序示例:
请参见附带文件:E_FM3501.zip。

关键词
Simotion,FM350-1

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论