[西门子] 把WinCC的时钟定时同步给S7-1500PLC的方法

[复制链接]
查看391 | 回复0 | 2024-9-17 21:01:06 | 显示全部楼层 |阅读模式
>

点击慧通工控关注我,设为星标★不错过每一篇深度好文

前段时间在公众号里写过一篇《如何将触摸屏的时间同步到S7-200SMART PLC》的文章,有兴趣的朋友可以点击查看。本期我们介绍一下如何把WinCC的时钟同步给S7-1500的PLC。

要将WinCC的时钟同步到S7-1500 PLC,方法其实有很多。其中主要一种是配置时间服务器和S7-1500PLC,并激活PLC的时间同步功能,根据项目需求设置刷新时间间隔。这种方法设置起来比较麻烦。

另外一种方法就是采用VBS脚本获取WinCC的日期和时间,并同步写入到PLC时钟的方法。该方法运行稳定、简单易行,并适合所有的PLC。今天给朋友们介绍此种方法的实现过程。

一、S7-1500 PLC的变量定义和编程
1、新建一个全局变量数据块,在数据块中定义两个变量,WinCC_DT和SYN_DT。这两个变量分别用于WinCC日期型变量的连接和存储转换后的日期型变量。因为WinCC_DT变量不能直接写入到PLC。
2、定义一个时钟同步位SYN_Start,数据类型为Bool型。用于开始同步动作。
3、定义时区变量。设置好当前时区(+8区)与标准时间的时差(+480分钟)。如下图所示。

4、在程序中新建启动组织块OB100,使PLC初次运行时自动运行一次设置时区指令,把PLC时区设置与我们的时区一致。否则可能出现设置的时间与要显示的时间不一致。

5、编写PLC时钟写入程序。当SYN_Start置1时,将WinCC的时钟转换后写入到SYN_DT变量中,然后把该时钟写入给PLC完成时钟设置。
6、程序完成编译后下载到PLC。
二、WinCC的时钟同步功能
1、WinCC变量连接。把PLC变量通过变量管理的“从AS中读取”同步到WinCC变量表中。同步过来的变量如下图所示:
2、定义系统信息变量@Date和@Time,用于获取WinCC的系统日期和时间信息。
3、在全局脚本中(VBS-Editor)定义一个DT_SYN动作函数,并编写VBS脚本实现时钟同步功能。

4、设置该动作函数的执行周期为每天的0时0分0秒执行一次。
5、如此设置以后,该脚本会每天定时执行一次,可确保PLC时间与电脑时间基本一致。
6、当然也可以在画面上做一个按钮,把示例脚本复制进去。WinCC运行过程中需要手动同步时间的时候便可以点击一下完成时钟同步。用该方法可以设置所有与WinCC通讯的PLC。
三、示例脚本如下:
Option Explicit

Function action

Dim DT,Date,Time

Date=HMIRuntime.Tags("@Date").Read

Time=HMIRuntime.Tags("@Time").Read

DT=Date&" "&Time

HMIRuntime.Tags("Global_Var_WinCC_DT").Write DT

HMIRuntime.Tags("Global_Var_DT_Start").Write 1

‘Msgbox("时钟同步已完成")

End Function
四、运行效果如下图:

朋友们,你们都学会了吗?
您的赞助、在看、转发、分享我都喜欢!  请关注我们,不要错过更多分享
感谢大家!原创不易,请多多支持!
相关文章导航:

如何把WinCC的参数保存到TXT文件中?

如何自制S7-200 Smart PLC专用的MicroSD存储卡[精]
WinCC动态生成历史趋势的方法

西门子PLC常用的功能块与算法收藏大合集(附下载地址)

西门子S7-200  SMART仿真软件介绍一

西门子S7-200 SMART仿真软件介绍二(附软件下载链接)

西门子S7-200  SMART 实现流水灯程序的两种方法简介(附例程下载)
西门子S7-1200对模拟量输入和输出模块的读写操作(附例程下载)
S7-PLCSIM  Advanced V5.0模拟器的使用详解
V90伺服驱动器通过FB284功能块与S7-1200的连接(建议收藏)
西门子WinCC画面中选项组的使用简介
西门子WinCC中使用Industrial Gadgets Pro控件实现流水和电机动画效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则