Wonderware系统平台局域网计算机时钟同步策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Wonderware 系统节点时钟同步设置策略
叶 峰 10.14.2013 Wonderware 系统平台在正常运行时, 需要系统各个节点之间的时钟高度同步。
特别是 Historian,对时间的同步性要求非常高。
Historian 历史服务器会比对来自数据源数据的时间 厝,当数据时间跟历史服务器自身时间有差异时,会在 SMC 日志里面出现报警记录,同时, 默认时当时间差异超出 1/‐30s 时, 历史库会把出现时间差异的数据丢弃。
这就出现了数据丢 失的情形。
因此,要特别注意和重视系统的时钟同步。
一. 不同网络条件下的时钟同步方案 域环境下,时钟源一般选择为域控制器,然后所有的域控制器都同步到主域控制器。
如 下图所示: PDC Domain Controller Server 1 Server 2 Server X Server 3 图 1‐1 域环境时钟同步 在局域网环境,我们推荐使用 Historian 服务器作为 NTP 服务器。
国内很多场合都是以局 域网模式配置系统网络,因此本文将重点讲解这种同步模式。
Time Source Backup Time (master) Source Historian Server2 Historian Server1 AOSs PLC\OPC\RTU\DCS DAS Server/FS Gateway Historian Client 图 1‐2 局域网环境时钟同步
GR
从上图可以看出,在局域网下,Wonderware 系统内选择 Historian 作为时钟服务器,所 有其他节点都应该跟它保持时钟同步。
当数据源来自第三方系统,比如 DCS 系统,对方的 时钟不一定能够跟 Historian 进行同步那该怎么办? 解决方案有两种: 第一, 可以在系统内所有节点同步到 Historian 后,再让 Historian 定期跟对方系统的时钟源进行同步。
第二, 对 IDAS 的 Topic 的存储属性进行配 置,将数据记录时间厝指定采用服务器侧的时间为准。
图 1‐3 时间厝设置 遇到多台 Historian 服务器的场合, 如上图, 则采用 TimeSyncMaster 参数指定谁是 Master. 上例,TimeSyncMaster 参数应该填 Historian Server1 的计算机名称。
图 1‐4 指定历史服务器主时钟源 如果 IDAS 跟 Historian Server1 不安装在同一台计算机内,可启用 TimeSyncIODrivers 参数, 以 便 让 Historian 服 务 器 周 期 性 地 自 动 同 步 IDAS 。
同 步 周 期 可 以 通 过 SuiteLinkTimeSyncInterval 参数设置。
图 1‐5 同步远程 IDAS 时间 二、局域网下采用 W32time 命令进行时钟同步 可能大家一般采用 net time 命令进行时间同步操作,比如: 在当期计算机命令行下输入以下命令格式, Net time \\IP 地址或计算机名称 /set /yes IP 地址或者计算机名输入时钟源服务器的 IP 或计算机名,当前计算机就会自动与时钟源
服务器同步。
但是默认情况下 Windows 2KX/XP/7 不允许常规用户重置系统时间, 组策略或者 UAC 设置 会限制该命令的执行。
从而导致系统错误 1314 的产生。
图 2‐1 System error 1314 当遇到这种情形, 这里提供另外一种方式来帮助完成局域网计算机之间的时钟同步。
对于 Wonderware 系统平台而言,因为 Historian 计算机对时间同步最为敏感,因此一般选择 Historian 作为时钟服务器。
三、Windows NTP 时钟服务器配置 服务器在默认情况下是作为 NTP 客户端工作的,必须通过修改注册表,以使系统作为 NTP 服务器运行。
工作之前请先备份注册表文件。
修 改 以 下 选 项 的 键 值 HKEY_LOCAL_MACHINE\SYSTEM\Current ControlSet\Servioes\W32Time\TimeProviders\NtpServer 内的[Enabled]设定为 1,打开 NTP 服 务器功能(默认是不开启 NTP Server 服务,除非电脑升级成为域控制站)。
修改以下键值 HKEY_LOCAL_MACHINE\SYSTEM\Current ControlSet\Services\W32Time\Config\AnnounceFlags 设定为 5。
该设定强制主机将它自身 宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体(CMOS)时钟。
重启 win32Time 服务,在开始运行中输入 net stop W32Time&&net start W32Time,回车 即可重新启动 Win32Time 服务,完成时间服务器的配置。
图 2‐1 重新启动时间服务 打开防火墙,将 UDP 协议 端口号:123 设置为例外。
图 2‐2 防火墙设置时间服务端口例外 四、时钟服务客户端配置 修改客户端注册表项,进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClien t]分支,并双击 SpecialPollInterval 键值,将对话框中的“基数 栏”选择到“十进制”上,输入框 中 显 示 的 数 字 正 是 自 动 对 时 的 间 隔 ( 以 秒 为 单 位 ) , 比 如 默 认 的 604800 就 是 由 7(天)×24(时)×60(分)×60(秒)计算来的。
设定时间同步周期 (建议设为 900=15 分钟或 3600=1 小时等周期值) ,填入对话框,点击确定保存关闭对话框。
(该处先设成 86400)
图 3‐1 注册表键值 将注册表子键 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters 下 的 键 值 SpecialInterval 设置为 0x1.以便使 SpecialPollInterval 启效。
同时建议检查并修改下面的注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config 下 的 键 值 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection 的值都为 0xFFFFFFFF,类型为 DWORD. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config 下 的 键 值
MaxPollInterval 的值设置为 10。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Timeproviders\NTPClien t 下的键值 SpecialPollTimeRemaining 的值设成 NTP 服务器的 IP 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter 键: net stop w32time && net start w32time 依次点击开始→控制面板→管理工具→服务,检查 Remote Procedure Call (RPC)服务、 Remote Procedure Call (RPC) Locator 服务、Windows Time 服务是否已启动,且将其启动类 型设为自动;
图 3‐2 检查服务 检查组策略配置, 防止权限上的冲突。
单击“开始”菜单→“运行”输入“gpedit.msc”打开“组 策略编辑器”,在左侧窗格依次单击“Computer Configuration”→“Windows Setting”→“Security Settings”→“Local Policies”→“User Rights Assignment”, 接着在右侧窗格双击“Change the system time”打开属性对话框,把当前用户名加上。
图 3‐3 添加用户权限 依次单击”Computer Configuration”→”Administrative Templates” →”System” →”Window Time Service” 检查 Global Configuration Setting 为未配置状态。
图 3‐4 时间服务组策略配置 下级子目录 Time Providers 下 Enable Window NTP Client, Configure Windows NTP Client, Enable Windows NTPServer 为 未配置状态。
图 3‐4 时间服务提供者组策略配置 至此,时钟客户端的配置完成。
客户端计算机可以用以下命令格式: w32tm /resync /computer:需要同步的时钟服务器计算机名称或 IP 地址 将自身系统时间跟服务器时间进行手动同步。
也可以将该命令存入*bat 批处理文件,在系统计划任务中进行周期性调用执行。
五、时钟配置案例 本案例中, 我将一步一步介绍怎么样利用 W32Time 命令, 定期让 AOS1 节点跟 Historian 进行时钟同步。
Historian IP 地址为 192.168.2.29 AOS1 IP 地址为 192.168.2.25 第一步,对 Historian(IP 192.168.2.29 ) Windows NTP 时钟服务器配置 参见栏目三说明。
第二步,对 AOS1(IP 192.168.2.25)进行时钟服务客户端配置。
参见栏目四说明。
设置好以后,对时间服务设置进行手动检测。
进入时间设定,将 Internet time server 指向 Historian 然后点击立即更新时间,如果 能够成功同步说明时间服务是正常的。
图 5‐1 Internet 时间同步
第三步,对客户端机器进行时钟源设置检查, 在 AOS1 命令行输入命令查看这该台机器的时钟源 Net time \\192.168.2.25 /Querysntp 或是 W32tm /monitor /computers: 192.168.2.25
图 5‐2 查询时钟源配置 如果时钟源计算机不是指向你想设置的计算机则执行以下命令进行修改。
修改数据源 Net time \\192.168.2.25 /SetSntp: 192.168.2.29 设置时间源后,隔一段时间才能同步,我们可以手动设置立即同步 W32tm /resync /computer: 192.168.2.25
图 5‐3 执行 W32Tm 命令 如果同步不成功,依次执行如下步骤:
图 5‐4 W32Tm 命令失败 请检查防火墙设置并依次执行如下命令: w32tm /config /manualpeerlist: 192.168.2.29,0x8 /syncfromflags:MANUAL w32tm /config /update net stop w32time net start w32time w32tm /resync 第四步,将命令保存成*.bat 文件在计划任务中定期运行。
打开记事本,编辑: W32tm /resync /computer: 192.168.2.25 然后将记事本另存为 ntp1.bat 文件。
点击 Windows 操作系统的“开始”菜单, 从中依次点选“程序”/“附件”/“系统工具”/“任务 计划程序”命令,打开计划任务配置窗口。
图 5‐5 新建计划任务 点击右侧创建新的计划任务,并为新的任务起一个名称,如下图起名为 ManualTimeSync。
图 5‐6 计划任务命名
在“操作”标签下,新建一个操作。
操作类别为启动程序,设置程序和脚本指向刚才我 们保存好的批处理文件 ntp1.bat。
图 5‐7 新建操作 在“触发器”标签下,新建一个触发器,开始任务选择“制定计划时” ,勾选“重复 任务间隔”并指定重复周期,本例中,重复周期选择为 1 小时,持续一天。
图 5‐7 设置触发条件
运行周期可以根据现场需求进行调整,可先设成每12小时执行一次。
完成这些设置以后,计划任务立即生效,AOS1便开始自动地进行周期性时间同步了。
Wonderware技术交流群: QQ: 293369651。