使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?

警告:
本说明不能应用于TP170A。使用 WinCC flexible 进行 TP170A 和 S7-300/400 之间的时钟同步请参见条目 ID 24106357。n

在基于 Windows 的面板(除了 TP170A)和 S7-300 或 S7-400 之间进行系统时间同步有两种情况。n

注意:
在本文档的结尾提供了 STEP 7 工程的下载,该工程实现了基于 Windows 面板和 S7-300/400 控制器之间两种方式的日期和时间传输。
n

传输 CPU 系统时间到基于 Windows 的面板

您可以使用“Date/time PLC”区域指针将面板的系统时间同步到控制器的系统时间,该时间用于面板操作或错误消息的时间戳。本文档末尾的附件 1 是示例工程。

序号 操作过程
1 在控制器的数据块中为“Date/time PLC”区域指针创建数据区域(DB1)
在控制器中定义一个数据区域,该区域由一个“DATE_AND_TIME”类型变量和四个“BYTE”类型变量组成。对于后期在操作面板中组态区域指针,这样做便于在结构中组织数据区域。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 15 KB )
图 01 - 在控制器中创建数据区域

2周期传送控制器的系统时间到预定义的数据区域
以 1 秒为周期将控制器的系统时间写入预定义的“DATE_AND_TIME”类型变量中。可以在循环中断 OB 块(如 OB35 或 OB32)中使用系统函数 SFC1 “READ_CLK”来实现这些功能。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 3 KB )
图 02 - 从 CPU 读取系统时间

注意:
连接一个 DB 指针到“CDT”参数只能使用符号地址

3在 WinCC flexible 中添加“Date/time PLC”区域指针
插入“Date/time PLC”区域指针,并让其与控制器中创建的结构互连。指定采集周期,操作面板中的系统时间以该周期随 S7 CPU 的当前系统时间更新而更新。建议将采集周期至少设为 10 秒钟。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 40 KB )
图 03 - 创建区域指针

注意:
Date/time PLC”区域指针对于所有的基于 Windows 的面板都是有效的。通过区域指针,系统时钟按照采集周期自动进行同步。

4配置 date/time Field
通过 date/time Field 可以将面板的系统时钟显示在 WinCC flexible 的画面中。这需要激活 date/time Field 中的Display date 和 Display time,并设置“Display system time”属性和“Output”模式。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 28 KB )
图 04 - 配置 date/time field

注意:
如果正在通过面板改变系统时钟,那么更新周期可能要花费几秒钟。这取决于波特率和采集周期。n

注意:
更多的关于操作面板和 S7 CPU 间时钟同步的信息请参见手册“WinCC flexible Communication Part 1”,见条目 ID: 18797552。n

从基于 Windows 的面板向 CPU 传送系统时间

有两种不同的方法用于 SIMATIC S7-300/400 控制器和基于 Windows 面板间的同步。n


方法 1 - 不使用“Date/time PLC”区域指针进行同步

使用这种没有“Date/time PLC”区域指针的方法,同步由控制器作业来完成。n

对于这种操作面板和 S7-300/400 控制器间的同步,您可以使用“** SYS_CLK_WinCE_V1”块。该块可通过文档结尾的链接附件 2 进行下载。n

在 WinCC flexible 中,这种同步方法需要使用两个区域指针,“Controller Job”和“Date/Time”。n

  • 区域指针“Controller Job”:
    “Controller Job”区域指针用于执行控制器作业。控制器作业通过作业编号来指定。该编号在“Controller Job”区域指针的第一个数据字中指定。每个作业最多可以指定 3 个参数。传输 CPU 系统时间到基于 Windows 面板使用作业号 14 (设置时间)和控制器作业号 15 (设置日期)。作业号 40 或者 41 用于传送面板的日期/时间到控制器。n
  • 区域指针“Date/Time”:
    “Date/Time”区域指针用于执行控制器作业 40 或 41。控制器作业 40/41 从操作面板读取当前的 date/time ,并将其数据写入控制器中的“Date/Time”数据区域。

以下讲述了如何使用“** SYS_CLK_WinCE_V1”块在控制器和 WinCC flexible 之间进行同步操作。

序号 操作过程
1 将“** SYS_CLK_WinCE_V1”块导入到 STEP 7 工程中
一旦在周期程序(例如 OB1)中导入了该块,就会生成与功能块 关联的实例数据块。连接一个标记(例如 M10.0)到块参数“IO_SetTime”,用于设置 S7 CPU 的系统时钟。
通过块参数“IO_ReadTime”来实现控制器和操作面板间的同步。其它四个参数由控制器作业使用,用于传送系统时间到控制器。为此,可以创建一个全局数据块,例如 DB20。然后连接功能块的四个参数到“Controller Job”区域指针的相关数据区域。

注意:
因为存在不同的控制器作业,例如“No. 51 - Screen selection”,所以功能块不对控制器作业的数据进行管理。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 6 KB )
图 05 - 功能块参数

注意:
若您需要在您的 STEP 7 工程中使用多个控制器作业,那么同样可以使用这个块。此时,仅需要确认两个或多个控制器作业没有同时启动或者相互覆盖。

2在 WinCC flexible 中配置区域指针
Date/Time”区域指针的存储区域从实例数据块的地址 10.0 开始。区域指针至少包含 6 个字,因此需要在 DATE_AND_TIME 类型数据后面额外添加个字节。
注意:
区域指针的后四个字节必须在数据区内,确保数据格式与 WinCC flexible 中对应的数据格式匹配,以避免读到错误的数据。DATE_AND_TIME 类型的数据在 WinCC flexible 中通过区域指针的符号地址来建立。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 13 KB )
图 06 - 实例数据块

激活“Date/Time”和“Controller Job”区域指针。对于“Date/Time”区域指针,与实例数据块中已定义的数据区域使用相同的地址。

对于“Controller Job”区域指针,可以指定一个全局数据块的地址,如“DB20 DBW 0”。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 48 KB )
图 07 - 创建区域指针

3在 WinCC flexible 中配置变量
在 WinCC flexible 中,创建两个 BOOL 类型变量“SetTime”和“ReadTime”,以及一个 DATE_AND_TIME 类型变量“DateTime”。对于前两个变量,使用在第一步中已经定义好的存储区域(例如 M10.0M10.1)。第三个变量的存储区域已经集成在实例数据块中,地址从 22.0 开始(参见图 06)。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 25 KB )
图 08 - 创建变量

另外,您也可以创建“Day of week”变量,用于在文本列表框中显示星期。

4在 WinCC flexible 中配置 date/time field
可以在 WinCC flexible 画面中通过 date/time field 来输入/显示基于 Windows 面板的当前系统时间。为此,要激活 Display date 和 Display time,并且选择“Display system time”属性和“Input / Output”模式。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 28 KB )
图 09 - 配置 date/time field

为了在操作面板上显示控制器的系统时钟,必须选择“Use tag”属性,而不是“Display system time”属性,并且连接“DateTime”变量。

5添加按钮来设置系统时钟
可以通过按钮的“Press”事件,使用“SetBit”系统函数来设置系统时钟。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 27 KB )
图 10 - 按钮属性

对于“SetTime”,使用先前已经创建的控制变量,使用控制器的系统时钟同步操作面板的系统时钟。对于控制器和面板间的系统时钟的同步,可以连接“ReadTime”变量到一个独立的按钮。

为了实现控制器和面板间自动和周期的同步操作,可以使用作业计划(job plaer),每分钟调用“ReadTime”变量一次。

注意:
本示例适用于所有 S7-300/400 控制器和所有基于 Windows 的面板,除了 TP170A 以外。n

注意:
更多的关于操作面板和 S7 CPU 间时钟同步的信息请参见手册“WinCC flexible Communication Part 1”,见条目 ID: 18797552
n

方法 2 - 使用“Date/Time PLC”区域指针进行同步操作

当使用区域指针进行时间同步时,同步自动按周期进行,无需更多配置。n

功能块“** SYS_CLK_WinCE_V2”用于周期地同步控制器和显示设备的系统时钟,也可以设置控制器和面板的系统时钟。该功能块可以通过本文档末尾的附件 3 来下载。n

  • 区域指针“Date/time PLC”:
    “Date/time PLC”区域指针用于同步 PLC 和操作面板的系统时钟。同步周期取决于采集周期。n
  • 区域指针“Date/Time”:
    “Date/Time”区域指针用于执行控制器作业 40/41。控制器作业 40/41 从操作面板读取当前的日期/时间,然后将其写入控制器中的“Date/Time”数据区域。n
  • 区域指针“Controller Job”:
    “Controller Job”区域指针用于执行控制器作业。作业号决定了控制器执行哪项作业,由“Controller Job”区域指针的第一个字的数值指定该编号。每个作业还可指定 3 个附加参数。传输操作面板的系统时间到控制器,只需要执行控制器作业 40。

以下内容讲述了如何使用“** SYS_CLK_WinCE_V2”块来完成控制器和 WinCC flexible 之间的同步。

序号 操作过程
1 将“** SYS_CLK_WinCE_V2”块导入 STEP 7 工程
一旦在周期程序(例如 OB1)中导入了该块,就会生成与功能块 关联的实例数据块。连接一个标记(例如 M10.0)到块参数“IO_SetTime”,用于设置 S7 CPU 的系统时钟。
其它四个参数由控制器作业使用,用于传送系统时间到控制器。为此,可以创建一个全局数据块,例如 DB20。然后连接功能块的四个参数到“Controller Job”区域指针的相关数据区域。

注意:
因为存在不同的控制器作业,例如“No. 51 - Screen selection”,所以功能块不对控制器作业的数据进行管理。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 6 KB )
图 11 - 功能块参数

注意:
若您需要在您的 STEP 7 工程中使用多个控制器作业,那么同样可以使用这个块。此时,仅需要确认两个或多个控制器作业没有同时启动或者相互覆盖。

2在 WinCC flexible 中配置区域指针
从实例数据块地址的 10.0 和 22.0 开始的内存区域保留作为“Date/Time PLC”和“Date/Time”区域指针。两个区域指针每个都为 6 个字长,所以在 DATE_AND_TIME 类型变量后面必须添加另外四个字节。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 15 KB )
图 12 - 实例数据块

注意:
区域指针的后四个字节必须在数据区内,确保数据格式与 WinCC flexible 中对应的数据格式匹配,以避免读到错误的数据。DATE_AND_TIME 类型的数据在 WinCC flexible 中通过区域指针的符号地址来建立。

对于“Controller Job”区域指针,可以指定一个全局数据块的地址,如“DB20 DBW 0”。

通过定义连接和地址,在 WinCC flexible 工程中插入“Date/time PLC”区域指针。同时激活“Date/Time”和“Controller Job”区域指针。这些区域指针都要使用与前面已定义的全局数据块和实例数据块中相同的数据区域。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 48 KB )
图 13 - 创建区域指针

以“Date/time PLC”区域指针中定义的采集周期为时间间隔,面板中的系统时间被控制器的当前系统时间不断更新。建议最小采集周期为 10 秒钟。

3在 WinCC flexible 中配置变量
在 WinCC flexible 中,创建一个 BOOL 类型变量“SetTime”,以及一个 DATE_AND_TIME 类型变量“DateTime”。对于第一个变量,使用在第一步中已经定义好的存储区域(例如 M10.0)。第二个变量的存储区域已经集成在实例数据块中,地址从 10.0 开始(参见图 12)。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 25 KB )
图 14 - 创建变量

另外,您也可以创建“Day of week”变量,用于在文本列表框中显示星期。

4在 WinCC flexible 中配置 date/time field
可以在 WinCC flexible 画面中通过 date/time field 来输入/显示基于 Windows 面板的当前系统时间。为此,要激活 Display date 和 Display time,并且选择“Display system time”属性和“Output”或“Input / Output”模式。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 28 KB )
图 15 - 配置 date/time field

为了在操作面板上显示控制器的系统时钟,必须选择“Use tag”属性,而不是“Display system time”属性,并且连接“DateTime”变量。

5添加按钮来设置系统时钟
可以通过按钮的“Press”事件,使用“SetBit”系统函数来设置系统时钟。

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步?
( 30 KB )
图 16 - 按钮属性

使用先前在变量编辑器中定义的“SetTime”控制变量。系统时钟被置位后控制变量被复位。面板中系统时钟的同步由集成的“Date/time PLC”区域指针自动完成。

注意:
当通过面板来改变系统时钟时,可能需要几秒钟的时间。这取决于波特率及采集周期。n

注意:
更多的关于操作面板和 S7 CPU 间时钟同步的信息请参见手册“WinCC flexible Communication Part 1”,见条目 ID: 18797552。n

下载集成了 WinCC flexible 工程的 STEP 7 工程:
拷贝“Time_WinCE_flexible_Ax.zip”文件到一个单独的目录下并解压缩。然后就可以使用 SIMATIC Manager 打开工程,并在必要时使用集成的 HMI station 编辑 STEP 7 工程。您可以使用 WinCC flexible 2005 SP1 (Compact 版本以上)打开集成的 WinCC flexible 工程。n

注意:
WinCC flexible 2005 的 Service Pack 1可以免费下载,参见ID: 23059737。n

下载:
附件 1 包含上述的用于传输 S7 CPU 系统时间到基于 Windows 面板的程序块。n

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步? 附件 1:Time_WinCE_flexible_A1.zip ( 2449 KB ) n

附件 2 包含上述的程序块,用于当不使用Date/time PLC”区域指针时,将用户自定义系统时间传送到 S7 CPU 和基于 Windows 的面板。n

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步? 附件 2: Time_WinCE_flexible_A2.zip ( 2966 KB ) n

附件 3 包含上述的程序块,用于当使用Date/time PLC”区域指针时,将用户自定义系统时间传送到 CPU 和基于 Windows 的操作面板。n

使用 WinCC flexible ,在基于 Windows 的面板和 S7-300/S7-400 控制器之间如何进行日期和时间的同步? 附件 3: Time_WinCE_flexible_A3.zip ( 2854 KB ) n

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

运行和测试环境:
下表列出了创建本文档及测试所描述功能使用的组件。

组件 产品及其版本
PC operating system Microsoft WindowsXP SP2
Standard tools -
Engineering tool STEP 7 V5.4 SP1
HMI software WinCC flexible 2005 SP1
HMI system MP370 12"

关键词:
OP73, OP77A, OP77B, TP177B, C7-635,C7-636,TP170B,TP177,OP170B,OP177,MOBILE PANEL 170,MOBILE PANEL TP177,TP270,TP277,OP270,OP277,MP270,MP277,MP370,设置日期/时间,同步,基于 Windows 的设备,WinCE,Windows CE

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

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

相关推荐

发表回复

登录后才能评论