【详解篇】MES系统中,如何更快实现PLC时钟与BC时间自动调整功能

MES系统目前已被应用到当今生产制造企业的多个领域,它担负着对生产设备和产品信息的各项采集,监控和整理等工作,同时人为还会赋予它一定的管理和发布指令的能力,在各大中型企业中被广泛应用。
MES系统作为制造企业车间执行层的“生产信息化管理者“,其必须保证整个系统的生产信息在同一个时间点,能稳定,高效,实时地采集和更新。
所以,时间同步对整个系统来说至关重要。
比如,在一个MES系统中, 处于二层设备的BC(Block Controller)控制器和底层设备端PLC的时间数据需与其自身的时间数据实时保持同步。

BC控制器作为直接跟MES系统进行信息交互的设备,其本身也属于信息系统即计算机级别,本篇主要讨论:BC控制器(信息系统)与PLC设备端(现场系统)的时间同步方法。
BC和PLC的时间同步,通常的做法是:BC控制器通过周期性发送Data time Set command,PLC在收到该指令后读取时间参数然后(通过梯形图程序)自动修改自身CPU的时钟数据,以达到BC与PLC时间同步的目的。
以上步骤PLC则需要编写梯形图程序。
比如:Master Data Time Set Command (梯形图程序局部)

以下介绍基于以太网通讯的情况下,BC运行于Windows系统,设备端PLC支持NTP网络时间协议,只需要设置NTP协议相关的参数,即可非常简易的实现【点对点】或【点对多】设备之间时间同步的功能,PLC不需要编写任何梯形图程序。
下面以:
BC运行环境Windows 10系统,PLC采用基恩士KV-8000系列或三菱Q系列,为例
作详细介绍。
Windows 10 系统分为五大步骤依次进行设置;PLC 只需要在软件下分三步设置完成。
首先,介绍在Windows 10系统上设置方法,目的是将其打造成一个支持NTP时间同步服务器。

第一步 操作【注册表编辑器】
通过组合键 “WIN+R” 运行框,输入 “regedit” 启动 “注册表编辑器” 。

依次展开路径:(可直接复制)
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\ TimeProviders\NtpServer
然后鼠标定位右侧栏内的 “Enabled” 项,右键 “修改”,将其数值修改为 “1” 。

依次展开路径:(可直接复制)
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
然后鼠标定位右侧栏内的 “AnnounceFlags“ 项,右键 ”修改“ ,将其数值修改为 ”5“ 。

完成之后,关闭注册表编辑器。

第二步 操作【服务】
再次通过组合键 “WIN+R” 运行框,输入 “services.msc” 启动 “服务” 。

在 “服务(本地)” 列表中,右侧栏下拉移动条找到的 “Windows Time”项,双击启动。

【常规】选项卡-“启动类型”选择 [自动],然后点击 [启动(s) ]按钮,打开W32time服务功能。


“服务状态:”显示为 “正在运行“,则表示启动完成,最后鼠标点击 [应用]-[确定 ],并关闭”服务“列表。

第三步 操作【控制面板】
按下组合键 “Win+S” ,在系统搜索框内输入 “控制面板“ 并打开。

将鼠标定位到 “ windows Defender 防火墙 “ 点击打开。

鼠标定位左侧项目栏,点击 “高级设置“ 。

打开 “高级安全 Windows Defender 防护墙“ 设置,然后鼠标定位左侧栏的 ”入站规则“ ,右击 ”新建规则“ 打开 ”新建入站规则向导“ 对话框。

<规则类型> 选择 “端口“ ,点击[下一步]

<协议和端口> 选择“UDP”-“特定本地端口”- 输入“123”,点击[下一步]

<操作> 选择“允许连接”,点击 [下一步]。

<配置文件> 全选“[域][专用][公用]”选择项,点击 [下一步]。

<名称> 自定义命名 例如:输入“SNTP”,最后点击 [完成]。

返回查看入站规则中,则增加了一项名称为“SNTP”的入站规则项目。


第四步 操作【防火墙】
为防止系统拦截,需要关闭系统所有防火墙。
按下组合键 “Win+S” ,搜索框内输入 “安全中心” 启动 “Windows 安全中心” ,右侧 “保护区域” 打开 “防火墙和网络保护” 设置。

依次关闭系统所有防火墙。

以上,关于Windows 10系统NTP服务器的功能设置已经完成,下面将对windows的NTP功能进行测试。

进入
第五步 测试【Windows NTP】
按下组合键 “Win+S”,输入 “CMD” ,选择 “以管理员身份运行” 启动DOS命令文本编辑器。

输入 “net stop w32time” ,按下 回车,文本提示:停止Win Time 服务。

再输入 “net start w32time” ,按下 回车,文本提示:启动Win Time 服务。

最后再次输入 “w32tm /stripchart /computer:127.0.0.1” ,等待几秒,文本会按一定的时间间隔回显系统返回的时间数据,至此,关于Windows 10的NTP时间服务器功能全部设置完成。


下面关于PLC的参数设置:介绍两款主流的日系PLC(基恩士和三菱)
首先是
/基恩士_KV-8000系列/
第一步 双击桌面图标,打开 “KV-STUDIO Ver.11G” 软件

第二步 按下组合键 “Ctrl+U” ,启动 “单元编辑器-编辑模式” ,鼠标点选PLC单元图标(红框示)然后再点击右侧栏 “设定单元(2)” 的图标折叠所有类型。

第三步 鼠标展开 “时钟数据自动调整功能” 项目,选择时钟调整类型和输入NTP服务器IP地址等相关参数。最后,点击 [应用]-[OK] 退出单元编辑器,完成。


最后是
/三菱Q系列/
第一步 双击桌面图标,打开 “GX Works2” 软件

第二步 左侧 “工程” 项目,鼠标展开 “参数” 项,双击 “PLC参数” 打开 “Q参数设置” ,选择 “内置以太网端口设置” 选项卡


第三步 鼠标指定 “时间设置” 项目,打开 “内置以太网端口 时间设置” 菜单,然后设置SNTP服务器IP和选择时间调整类型,最后,点击 “设置结束” 退出完成。


小结:
NTP即 “网络时间协议”,SNTP为NTP的简易版。
在BC端与设备端PLC正常以太网通讯的情况下,可通过Windows的“日期和时间设置”修改系统当前时间;

然后将PLC软件模式切换至 “监控器模式” ,打开 “批量监控器” 即可查看CPU时钟寄存器数据是否随系统更新。
以KV-STUDIO为例:
