在下面的例子里组态ET 200MP 的TM Timer DIDQ 16x24V模块。工艺模块 TM Timer DIDQ 16x24V 支持以下功能:
- 时间戳检测(Timer DI):
该工艺模块可以检测数字量输入沿的相关时间戳。 时间戳指示检测到沿的时间(相对于时基)。 这些时间戳可用于计算时差。 时间戳基于工艺模块所支持的“Time-based IO”技术且需要等时模式。
- 时间控制的切换(Timer DQ):
使用时间戳可以让受控操作以非常精准的时间再现。 使用该功能,工艺模块可以按精确定义的时间点在相应的数字量输出中输出沿。 Timer功能基于 Time-based IO 并需要等时模式。
- 计数
- 脉宽调制(PWM)
- 密集采样
下面说明如何通过组态"Time-based IO"功能实现结合某数字量输入时输入输出间按预定义时间进行响应的功能。在这个例子中实现输入输出之间按预定义时间进行响应。 这意味着:
- 通道组态需设为 “8 输入,8输出”
- DI模块组态需设为“单独使用输入”
- 对于一个输入点。例如 DI0,操作模式需设为“定时器DI”
- 对于一个输出点。例如 DQ0,操作模式需设为“定时器DQ”
硬件组态
- 在项目树中双击选项"Devices &Networks(设备和网络)" 。 打开设备和网络编辑器。
- 打开ET 200MP 的设备视图并且从硬件目录里拖曳工艺模块TM Timer DIDQ16x24 到ET200MP的任意插槽内。
图1 - 在ET 200MP 的设备视图中选中工艺模块 TM Timer DIDQ16x24。该工艺模块的属性显示在巡视窗口中。在"General(常规)" 找到"TM Timer DIDQ 16x24V> Basic parameters(基本参数)"。通道组态设置为"8 inputs, 8outputs"。
图2 - 通过 "General(常规)" 标签下导航到 "TM Timer DIDQ 16x24 > Chael parameters (通道参数)> DI0/DI1"设置“组态DI组”为"Use inputs individually(单独使用输入)",启用DI0作为独立定时器DI功能。设置操作模式为"Timer DI(定时器DI)",输入延时为"None"。
图 3 - 将使用的DQ的操作模式设为 “TimerDQ(定时器DQ)"。
图 4
组态时间同步PROFINET IO系统
- 在 "Devices &Networks" 编辑器中打开拓扑视图。
- 根据硬件设置组态网络拓扑。
图 5 - 在 "Devices &Networks" 编辑器中打开网络视图。
- 将IO device ET 200MP 分配到 IO controller。
图 6 - 在ET 200MP的设备视图中选中接口模块,以将 PROFINET IO 系统设为IRT模式和进行同步模式设置。接口模块的属性在巡视窗口中显示。在 "General(常规)"标签下导航到"PROFINETinterface [X1] > Advanced options(高级选项) > Isochronous mode(等时同步模式)"。使能功能"Isochronous mode(等时同步模式)"。
Ti/To值保持 设置为"Automaticsetting(自动设置)"。PROFINET IO 系统和同步域所需的设置将会自动完成。
在 Detail overview(详细消息概览) 标签下为TM Timer DIDQ 16x24V使能等时同步模式。
图7 - 在网络视图选中PROFINET IO 总线。PROFINET IO 系统的属性显示在巡视窗口中。 在"General"标签下导航到 "PROFINET > Sync Domains >Sync-Domain_1",修改发送时钟。在例子中使用预设时钟1ms。
图8 - 在ET 200MP的设备视图中选中工艺模块TM Timer DIDQ 16x24V。该工艺模块的属性显示在巡视窗口中。在"General"标签下导航到"TM Timer DIDQ 16x24V > Chael parameters> IO addresses"。点击"Input addresses >Organization block(组织块)"下的"Add new(新增)..." 按钮 来为输入和输出地址分配一个同步OB。"Add new block(添加新块)" 对话框打开。
图9 - 在 "Add new block" 对话框中创建一个同步循环OB,,选择类型为"SynchronousCycle" 的组织块并点击 "OK"关闭对话框。
图10 -
将创建的同步循环OB分配给输入输出地址。然后可以离开设置过程映像 "TPA 1" 的对话框了。
图 11 -
在网络视图选中PROFINET IO总线。PROFINET IO 系统的属性显示在巡视窗口中。在 "General" 标签下导航到"PROFINET > Domain management (域管理)> Overview isochronousmode(等时同步模式概览)"。显示关于组态的Ti/To 有效值。
图12
创建用户程序
为了能在CPU的诊断缓冲区中显示同步循环OB的溢出事件,在同步循环OB属性的"Attributes(属性)"下使能选项"Report event overflow todiagnostics buffer(过载事件将在诊断缓冲区中留下一次记录)"。
图13
在 "Isochronous mode"下设置应用周期为PROFINETIO 系统发送时钟的整数倍。在本例中应用周期设为1ms。这样应用周期等于发送时钟。
图14
打开循环组织 OB 并按下列顺序调用指令。
1. SYNC_PI:
使用SYNC_PI 等时同步输入过程映像分区。
在输入引脚 PART 输入想要进行同步更新的输入过程映像分区的编号。
在硬件组态中已经将过程映像分区“PIP1”分配给了工艺模块TMTimer DIDO 16x24V 的输入地址(见图11)。
在输出引脚 FLADDR中显示发生访问错误时,造成错误的第一个字节的地址。地址存储在静态变量"statPiFladdr"中。
图15
2. TIO_SYNC:
使用TIO_SYNC 指令根据共享时间基准同步TM时间工艺模块。
在输入参数 HWID_1 to HWID_8 处根据硬件组态设置TM时间工艺模块的硬件标志符。通过 TIO_SYNC最多可以同步 8 个TM 时间工艺模块。
-
在输入参数 SendClock 处设置同步域的发送时钟。应用PROFINET组态中的发送时钟。
如果同步循环OB每个数据周期都被调用, 数据更新按照IPO模型进行。这种情况将输入参数PIP_Mode 的值设为 2 。
注意
IPO模型描述按如下顺序进行数据处理的基本准则:输入-处理过程-输出。 -
创建一个数据类型为 UDT"TIO_SYNC_Data"的变量。在本例中创建了数据类型为"TIO_SYNC_Data" 的静态变量"statTioSyncData" 。
- 在输入参数TIO_SYNC_Data 处填入数据类型为UDT"TIO_SYNC_Data"的变量静态变量"statTioSyncData"。数据类型UDT"TIO_SYNC_Data" 包含用于同步模块和传递 TIO_Time 的中央结构和数据。同样将 数据类型为 UDT "TIO_SYNC_Data" 的静态变量"statTioSyncData" 作为指令TIO_DI 和TIO_DQ的 TIO_SYNC_Data 输入参数。
图16
3. TIO_DI:
TIO_DI会持续检测TM Timer DIDQ 数字量输入中的沿,并返回关联时间戳。TIO_DI 每次读取输入时调用一次。
-
在输入参数 HWID 处填写TMTimer 工艺模块的硬件标识符。
-
在输入参数 Chael 处填写已连接的TMTimer DIDQ的数字量输入的编号。
-
在输入参数EdgeSel 处指定要检测时间戳的沿。在本例中写入3 ,意为上升沿和下降沿检测(顺序取决于发生时间)。
-
在输入参数TO 处设定用于输出等时输出数据的时间。使用ET200M的硬件组态 中 time To (output process values) 中的数值(见图 12) 。
-
输出参数 DI 显示数字量输入的状态。
-
输出参数TimeStampRE显示检测到上升沿的时间。
- 输出参数TimeStampFE 显示检测到下降沿的时间。
图17
4. 用户应用: 通过用户应用可以根据输入时间戳和当前时间 (TIO_Time)计算用于TM Timer DIDQ 工艺模块输出转换的输出时间戳。
5. TIO_DQ:
TIO_DQ指令用于在指定的时间切换 TM Timer DIDQ 的数字量输出。TIO_DQ每当时间控制输出的输出时间戳到来时执行一次。通过输入参数HWID 和Chael 指定TM Timer DIDQ工艺模块中由时间控制输出的地址。
-
在输入参数 "Out_Mode" 处指定数字量输出沿的输出模式。在本例中选择模式3, 当TimeStempRE(上升沿时间戳)=0或TimeStampFE (下降沿时间戳)=0 时,直接输出每一个沿 。
-
在输入参数TO 处设定用于输出等时输出数据的时间。使用ET200M的硬件组态 中 time To (output process values) 中的数值(见图 12) 。
指令TIO_DI 中被指定输出参数的TimeStampRE和 TimeStampFE 在TIO_DQ 指令中被指定为输入参数TimeStampRE和 TimeStampFE 。
-
输入参数 TimeStampRE and TimeStampFE 处设置的时间戳用于在指定时间在数字量输出中输出上升沿或下降沿。
图 18
6. SYNC_PO:
SYNC_PO指令用于在同步模式下更新输出的过程映像分区。
在输入引脚 PART 输入想要进行同步更新的输出过程映像分区的编号。
在硬件组态中已经将过程映像分区“PIP1”分配给了工艺模块TMTimer DIDO 16x24V 的输出地址(见图11)。
图19
注意
上述指令都是FC块,这些指令输入输出引脚上使用的静态变量来自FB的背景DB。在同步OB(OB61)中调用FB块时背景DB被创建。
更多信息
TMTimer DIDQ 工艺模块的详细信息请参考如下手册 :
- SIMATIC ET 200SP Technology module TM Timer DIDQ 10x24V (6ES7138-6CG00-0BA0)
- SIMATIC ET 200MP/S7-1500 Technology module TM Timer DIDQ 16x24V (6ES7552-1AA00-0AB0)
- SIMATIC High-precision input/output with Time-based IO
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322995.html