下面说明如何通过组态"Time-based IO"功能实现结合某数字量输入时输入输出间按预定义时间进行响应的功能。在这个例子中实现输入输出之间按预定义时间进行响应。 这意味着:
-
对于一个输入点。例如 DI0,操作模式需设为“定时器 DI”
-
-
对于一个输出点。例如 DQ0,操作模式需设为“定时器 DQ”
硬件组态
-
在项目树中双击选项"Devices & Networks(设备和网络)" 。 打开设备和网络编辑器。
-
打开ET 200MP 的设备视图并且从硬件目录里拖曳工艺模块TM Timer DIDQ16x24 到ET 200MP的任意插槽内。

图 1
-
在ET 200MP 的设备视图中选中工艺模块 TM Timer DIDQ16x24。该工艺模块的属性显示在巡视窗口中。在"General(常规)" 找到"TM Timer DIDQ 16x24V > Basic parameters(基本参数)"。通道组态设置为"8 inputs, 8 outputs"。

图 2
-
通过 "General(常规)" 标签下导航到 "TM Timer DIDQ 16x24 > Channel parameters (通道参数)> DI0/DI1"设置“组态DI组”为 "Use inputs individually(单独使用输入)",启用DI0作为独立定时器DI功能。设置操作模式为"Timer DI(定时器DI)",输入延时为"None"。

图 3
-
将使用的DQ的操作模式设为 “Timer DQ(定时器DQ)"。
图 4
-
在 "Devices & Networks" 编辑器中打开拓扑视图。
-
根据硬件设置组态网络拓扑。

图 5
-
在 "Devices & Networks" 编辑器中打开网络视图。
-
将IO device ET 200MP 分配到 IO controller。

图 6
-
在ET 200MP的设备视图中选中接口模块,以将 PROFINET IO 系统设为IRT模式和进行同步模式设置。接口模块的属性在巡视窗口中显示。在 "General(常规)"标签下导航到"PROFINET interface [X1] > Advanced options(高级选项) > Isochronous mode(等时同步模式)"。使能功能"Isochronous mode(等时同步模式)"。
Ti/To 值保持 设置为"Automatic setting(自动设置)"。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 > Channel parameters > IO addresses"。点击"Input addresses > Organization block(组织块)"下的"Add new(新增)..." 按钮 来为输入和输出地址分配一个同步OB。 "Add new block(添加新块)" 对话框打开。

图 9
-
在 "Add new block" 对话框中创建一个同步循环OB,,选择类型为"Synchronous Cycle" 的组织块并点击 "OK"关闭对话框。
图 10
-
将创建的同步循环OB分配给输入输出地址。 然后可以离开设置过程映像 "TPA 1" 的对话框了。

图 11
-
在网络视图选中PROFINET IO总线。PROFINET IO 系统的属性显示在巡视窗口中。在 "General" 标签下导航到"PROFINET > Domain management (域管理)> Overview isochronous mode(等时同步模式概览)"。显示关于组态的Ti/To 有效值。

图 12
为了能在CPU的诊断缓冲区中显示同步循环OB的溢出事件,在同步循环OB属性的"Attributes(属性)" 下使能选项"Report event overflow to diagnostics buffer(过载事件将在诊断缓冲区中留下一次记录)"。

图 13
在 "Isochronous mode"下设置应用周期为PROFINET IO 系统发送时钟的整数倍。在本例中应用周期设为1ms。这样应用周期等于发送时钟。

图 14
1. SYNC_PI:
使用SYNC_PI 等时同步输入过程映像分区。
在输入引脚 PART 输入想要进行同步更新的输入过程映像分区的编号。
在硬件组态中已经将过程映像分区“PIP1”分配给了工艺模块TM Timer 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 输入参数。