如何根据WinCC设置S7控制器的时间?

n

描述
下面的方法只能进行时间设置而不能完成时间同步的功能。因为必须考虑到延迟,比如报文的处理时间,C 脚本的运行时间等,因此这个方法在精度方面不如真正的时间同步精确。
还要注意时间跳变(向前/向后)的发生,这就意味着这个方法不适用于必须按时间正向顺序的应用。n

下面的方法是使用WinCC的脚本把时间写到功能块(FB1)的静态变量中。这些变量作为"Date_And_Time"数据类型变量被调用,传送到系统块"SET_CLK" (SFC0)中。n

更多信息

  • 时钟同步的设置参考条目ID: 16622902.n
  • 如何通过以太网组态时钟同步参考条目ID: 2416068.n
  • 如何通过PROFIBUS组态时钟同步参考条目ID: 11932931.

说明

No. 步骤
1 从系统库中找到系统函数 SFC0 插入项目。 n

  • 单击"文件 > 打开" 然后选择 "库" 标签.n
  • 打开"标准库".

如何根据WinCC设置S7控制器的时间?
图. 01n

"系统功能块" 文件夹中包含了系统功能 SFC0(SET_CLK). 将它拖拽到项目中。n

如何根据WinCC设置S7控制器的时间?
图. 02

2创建一个功能块 (例子中是FB1) 并按照指定顺序在静态区建立以下变量。 n

  1. Time Stamp 定义为 "Date_And_Time" 类型(SFC0 的时间)n
  2. ret_value 定义为 "Int" 类型(SFC0 的返回值)n
  3. Flag 定义为 "Bool"类型(WinCC 触发器)

如何根据WinCC设置S7控制器的时间?
图. 03

3

在 FB1 中建立一个新的网络,并将下面文件中的 STL 代码拷贝到新网络中。

如何根据WinCC设置S7控制器的时间? AWL-Code.txt ( 203 bytes )

功能

  • 只有当C脚本在WinCC中被触发变量调用时,时间才被设置
  • 通过“SET_CLK”设置时钟之后,触发变量被复位。
4
  • 在OB1中调用建好的功能块FB1。
  • 选择DB1为实例的数据块。
5 打开WinCC 在变量管理器中建立下表中的变量,选择“无符号8位数”,并在格式转换中选择“ByteToBCDByte”。

注意
“flag”变量为“二进制”类型变量,没有格式转换。

如何根据WinCC设置S7控制器的时间?
图. 04

如何根据WinCC设置S7控制器的时间?
图. 05

6打开全局脚本C编辑器,建立一个新的项目函数“文件〉新建项目函数”。
7
  • 删除函数模板。
  • 把以下文件插入C脚本。
  • 保存函数。

如何根据WinCC设置S7控制器的时间? C-Script.txt ( 634 bytes )

注意
函数使用“设置系统时间”将格林威治时间写入控制器。
如果希望将本地时间写入控制器,可以在C脚本中,将“Set System Time”注释掉,用“Set Local Time”(在C脚本中被注释掉的部分)替代。

8

周期的或在按钮中调用此函数。

表01

关键字
时间队列, 时间设置, GMP, Pharma, 生命科学, 确认, FDA 21 CFR Part 11

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

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

相关推荐

发表回复

登录后才能评论