如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?

说明:
有两种选择来同步操作面板( TP170A 除外)与 S7-300 或 S7-400 之间的系统时钟。n

警告:
该条目不能用于 TP170A 。关于同步 TP170A 与 S7-300/400 之间系统时钟的信息可参阅条目 ID 23972509。n

注意:
关于这两种同步操作面板与 S7-300/400 控制器之间系统时钟的方法在本条目的最后可以下载 STEP 7 的例程。

将 CPU 的系统时钟同步到操作面板

可以使用“日期/时间 -PLC ”区域指针来实现将控制器的系统时钟同步到操作面板上,该时钟将作为操作面板上错误信息等其它时间的时间戳。在本条目最后提供的附件 1 即为该方法的样例。

编号 程序
1 在控制器中的数据块中为“日期/时间 - PLC”区域指针建立数据区域
在控制器中定义一个包含一个“ DATE_AND_TIME ”类型的变量及四个类型为“ BYTE ”变量的数据区域。用于之后在操作面板中组态的区域指针所指向的数据区域结构。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 15 KB )
图 01 - 在控制器中建立数据区域

2将控制器中的系统时钟循环传送到所定义的数据区域中
要将控制器的系统时钟按一秒的周期传送到预定义的“ DATE_AND_TIME ”中。可以在循环中断 OB 块如 OB35 或 OB32 中调用系统功能块 SFC1 “ READ_CLK ”。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 3 KB )
图 02 - 从 CPU 中读出系统时间

注意:
DB 指针的连接,例如,到 CDT的参数可能仅是象征性的

3在 ProTool 中插入“日期/时间 - PLC ”区域指针
通过项目菜单“插入 > 区域指针...”,可以插入类型为“日期/时间 - PLC ”的区域指针。然后可以定义区域指针的地址与在 PLC 中预定义的数据区域(结构: Date_Time_PLC )相互连接。通过定义采集周期可以设置操作面板从 CPU 更新系统时钟的时间间隔。推荐设置该采集周期为 10 秒。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 6 KB )
图 03 - 建立区域指针

注意:
日期/时间 - PLC ”区域指针可用于所有基于 Windows 系统的操作面板。通过该区域指针可以实现根据设定周期的系统时钟自动同步。

4组态日期/时间域
可以在 ProTool 画面中通过添加一个日期/时间域,并且将该域的数据源设置为“系统时间”,域类型设置为“允许编辑”,那么即可通过该域输入设置操作面板的系统时间。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 15 KB )
图 04 - 组态日期/时间域

为了在操作面板上显示控制器的系统时钟,必须将数据源从“系统时间”改为“变量”。“日期时间”变量也必须被连接。

注意:
需要注意的是在通过操作面板修改系统时钟来更新时间的话会需要几秒时间。这会根据波特率以及其它事件的采集周期有所不同。

将操作面板的系统时钟传送到 CPU

以下有两个关于同步 SIMATIC S7-300/400 控制器与操作面板之间系统时钟的程序。n

推荐通过使用“日期/时间 - PLC ”区域指针进行同步(选择 2 )。

选择 1 - 不使用“日期/时间 - PLC ”区域指针进行同步

选择不使用“日期/时间 - PLC ”区域指针进行同步的话是通过控制器作业来实现。n

选择这种方法进行操作面板与 S7-300/400 控制器之间的时钟同步的话,您可以使用“ ** SYS_CLK_WinCE_V1”块来实现,该块可以在本条目最后的附件 2 中下载得到。n

选择这种同步的方法来同步操作面板及 S7-300/400 控制器之间的系统时间的话,需要“作业信箱”及“日期/时间”两个区域指针。n

  • “作业信箱”区域指针:
    “作业信箱”区域指针用于执行控制器作业。通过在“作业信箱”区域指针的第一个字中输入作业号来指定控制器作业。还可以为每一个作业设置 3 个参数。通过控制器作业 14 (设置时间)及控制器作业 15 (设置日期)来实现将 CPU 的系统时间传送到操作面板。通过控制器作业 40 或 41 来实现将操作面板的系统时间传送到控制器。n
  • “日期/时间”区域指针:
    “日期/时间”区域指针需要执行控制器作业 40 或 41 。控制器作业 40/41 从操作面板中读出当前日期/时间并且将该数据写入到控制器中的“日期/时间”数据区域中。

下面即为如何使用“ ** SYS_CLK_WinCE_V1”块来实现控制器与 ProTool 之间时钟同步的说明。

编号 程序
1 将“** SYS_CLK_WinCE_V1”块导入到 STEP7 项目中
一旦将该块导入到循环程序(例如 OB1)中,将会生成该功能块的相关数据块实例。连接一个触发标志到“ IO_SetTime ”块参数用于设置 PLC 的系统时钟,例如 M10.0
通过“ IO_ReadTime ”块参数来实现控制器与操作面板之间的同步。用于传送操作面板系统时间到控制器的控制器作业需要另外四个参数。为此需要建立一个全局数据块,例如 DB20 ,并且将该功能块的四个参数与“作业信箱”区域指针的相关数据区域进行相互连接。

注意:
由于是不同的控制器作业,例如“ No. 51 - 选择画面”,这些控制器作业的数据操作不会在该功能块中执行。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 6 KB )
图 05 - 功能块参数

注意:
也可以在 STEP7 项目中使用该功能块执行多个控制器作业。为此,您需要保证不能同时有两个或者更多的控制器作业并列执行。

2在 ProTool 中组态区域指针
在数据块中从 10.0 开始的地址需要保留作为“日期/时间 - PLC ”的存储区。该区域指针包含至少 6 个字,因此需要另外四个字节为 DATE_AND_TIME 数据类型。
注意:
区域指针的后四个字节必须存在于数据区域中且保证数据格式与 ProTool 中匹配以避免读出错误数据。在 ProTool 中配置区域指针与 DATE_AND_TIME 数据类型符号的连接。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 13 KB )
图 06 - 数据块实例

使能“日期/时间”及“作业信箱”区域指针。对于“日期/时间”区域指针要使用所生成的数据块实例中定义的相同数据区域。
对于“作业信箱”区域指针需要指定全局数据块中的地址区域, 例如“ DB20 DBW0 ”。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 25 KB )
图 07 - 建立区域指针

3在 ProTool 中组态变量
在 ProTool 中创建 BOOL 类型的变量“ SetTime ”及“ ReadTime ”,再创建一个 DATE_AND_TIME 类型的变量“ DateTime ”。对于第一个变量地址使用在步骤 1 中定义的存储区 ( 例如 M10.0M10.1 )。第二个变量的存储区已经集成在数据块从地址 22.0开始的地址中( 参看图 06)。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 25 KB )
图 08 - 创建变量 n

可以创建“”变量在文本列表中来显示周几。

4在 ProTool 中组态日期/时间域
在 ProTool 画面中可以通过添加一个日期/时间域(显示:使能日期和时间)来输入操作面板的系统时间,该域的数据源选择为“系统时间”且要使能域类型中的“允许编辑”。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 15 KB )
图 09 - 组态日期/时间域 n

由于需要在操作面板上显示控制器的系统时钟,则必须在“变量”属性中的数据源选择“日期时间”变量而不是“系统时间”。

5添加设置系统时钟的按钮
可以通过组态一个按钮的“按钮按下”事件中添加“设置位” 系统功能来实现设置系统时钟。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 28 KB )
图 10 - 按钮属性

对于所使用的控制变量“ SetTime ”,应该已经在变量编辑器中创建,该变量用于触发将控制器的系统时钟同步到操作面板的系统时钟。在另外一个按钮中连接“ ReadTime ”变量用于触发将操作面板的系统时钟同步到控制器的系统时钟。

为了实现周期的自动同步,可以使用计划作业,在计划作业中每分钟触发一次“ ReadTime ”变量。

注意:
如果需要执行多个控制器作业,必须保证每一个控制器作业不能同时执行。n

注意:
该例子可以用于所有 S7-300/400 控制器与基于 Windows 系统的操作面板,除了 TP170A 。

选择 2 - 使用“日期/时间 - PLC ”区域指针进行同步

当使用区域指针实现同步时,同步将可以周期的执行而不需要做更多的组态。n

该条目最后所提供附件 3 中的功能块“ ** SYS_CLK_WinCE_V2 ”可用于同步控制器与所列出的操作面板之间的系统时钟。也可以设置控制器和操作面板的系统时钟。n

  • “日期/时间 - PLC ”区域指针
    “日期/时间 - PLC ”区域指针用于同步 PLC 及操作面板的系统时钟。同步周期根据设定区域指针的采集周期。n
  • “日期/时间”区域指针
    “日期/时间”区域指针需要执行 40/41 控制器作业。控制器作业 40/41 从操作面板中读出当前日期/时间,并将其写入控制器中的“日期/时间”数据区域。n
  • “作业信箱”区域指针
    “作业信箱”区域指针用于执行控制器作业。通过输入作业号到“作业信箱”区域指针的第一个字来指定控制器作业。还可以为每一个作业设置三个以上参数。只有控制器作业 40 要求传送操作面板的系统时间到控制器中。

下面即为如何使用“ ** SYS_CLK_WinCE_V2”块来实现控制器与 ProTool 之间时钟同步的说明。

编号 程序
1 将“** SYS_CLK_WinCE_V2”块导入到 STEP7 项目中
一旦将该块导入到循环程序(例如 OB1)中,将会生成该功能块的相关数据块实例。连接一个触发标志到“ IO_SetTime ”块参数用于设置 PLC 的系统时钟,例如 M10.0
用于传送操作面板系统时间到控制器的控制器作业需要另外四个参数。为此需要建立一个全局数据块,例如 DB20 ,并且将该功能块的四个参数与“作业信箱”区域指针的相关数据区域进行相互连接。

注意:
由于是不同的控制器作业,例如“ No. 51 - 选择画面”,这些控制器作业的数据操作不会在该功能块中执行。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 6 KB )
图 11 - 功能块参数

注意:
也可以在 STEP7 项目中使用该功能块执行多控制器作业。为此,您需要保证不能同时有两个或者更多的控制器作业并列执行。

2在 ProTool 中组态区域指针
同样,存储区域中的数据块实例地址 10.0 及 22.0 需保留用于“日期/时间 - PLC ”及“日期/时间”区域指针。这两个区域指针包含总共 6 个字,因此需要另外四个字节用于DATE_AND_TIME数据类型。 n

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 15 KB )
图 12 - 数据块实例

注意:
区域指针的后四个字节必须存在于数据区域中且保证数据格式与 ProTool 中匹配以避免读出错误数据。在 ProTool 中配置区域指针与 DATE_AND_TIME 数据类型符号的连接。

通过项目菜单“ PLC > 区域指针”,可以插入类型为“日期/时间 - PLC”的区域指针。然后可以定义区域指针的地址与在控制器中预定的数据区域相互连接。

需要为“作业信箱”区域指针指定全局数据块中的地址区域,例如,“ DB20 DBW 0”。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 25 KB )
图 13 - 创建区域指针

通过“日期/时间 - PLC ”区域指针的采集周期,可以定义操作面板同步控制器系统时钟的时间间隔。推荐将该采集周期设置为至少 10 秒。

3在 ProTool 中组态变量
在 ProTool 中创建 BOOL 类型的变量“SetTime”及一个 DATE_AND_TIME 类型的变量“DateTime”。对于第一个变量使用在步骤 1 中定义的存储区 ( 例如 M10.0 )。第二个变量的存储区已经集成在数据块从地址 10.0开始的地址中( 参看图 12)。 n

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 28 KB )
图 14 - 创建变量

可以创建“周”变量在文本列表中来显示周几。

4在 ProTool 中组态日期/时间域
在 ProTool 画面中可以通过添加一个日期/时间域(显示:使能日期和时间)来输入/显示操作面板的系统时间,该域的数据源选择为“系统时间”且要使能域类型中的“允许编辑”。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 15 KB )
图 15 - 组态日期/时间域

由于需要在操作面板上显示控制器的系统时钟,则必须在“变量”属性中的数据源选择“日期时间”变量而不是“系统时间”。

5添加设置系统时钟的按钮
可以通过组态一个按钮的“按钮按下”事件中添加“设置位” 系统功能来实现设置系统时钟。

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步?
( 28 KB )
图 16 - 按钮属性

使用已经在变量编辑器中创建的控制变量“ SetTime ”。该控制变量会在设置系统时钟后被复位。通过集成的“日期/时间 - PLC ”区域指针可以自动进行周期性的系统时钟同步。

注意:
需要注意的是在通过操作面板修改系统时钟来更新时间的话会需要几秒时间。这会根据波特率以及其它事件的采集周期有所不同。n

下载集成了 ProTool 项目的 STEP 7 项目:
复制“ Time_WinCE_ProTool_AX.zip ”文件到一个独立的文件夹中将其解压。然后如果需要编辑集成了 HMI 站的 STEP 7 项目,可以用 SIMATIC 管理器打开该项目进行编辑。可以使用 ProTool V6.0 SP3 或者以上版本的 ProTool 打开集成的 ProTool 项目。n

下载:
下载的附件 1 中包含之前所描述的用于传送 CPU 系统时间到操作面板的功能块。n

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步? 附件 1 : Time_WinCE_ProTool_A1.zip ( 431 KB ) n

下载的附件 2 中包含之前所描述的用于传送一个不使用日期/时间 - PLC ”区域指针的用户自定义系统时间到 CPU 及操作面板的功能块。n

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步? 附件 2 : Time_WinCE_ProTool_A2.zip ( 493 KB ) n

下载的附件 3 中包含之前所描述的用于传送一个使用日期/时间 - PLC ”区域指针的用户自定义系统时间到 CPU 及操作面板的功能块。n

如何使用 ProTool 组态操作面板与 S7-300/S7-400 控制器之间的日期及时间同步? 附件 3 : Time_WinCE_ProTool_A3.zip ( 481 KB )

重要提示:
样例程序是免费软件。每个用户都可以免费使用,复制或转发该程序。程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何质保错误纠正热线支持

运行及测试环境:
以下列表列出了可以校验该功能的组件。

组件 产品及版本
PC 操作系统 Microsoft WindowsXP SP2
标准工具 -
编程工具 STEP 7 V5.3
HMI 软件 ProTool V6.0 SP3 HF 3
HMI 系统 -

Keywords:
TP170B ,OP170B , MOBILE PANEL 170 , TP270 , OP270 , MP270 , MP370 , 设置日期/时间, 同步, 基于 Windows 系统的设备, WinCE ,Windows CE

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

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

相关推荐

发表回复

登录后才能评论