
在本课程中,我们将研究如何使用自定义系统变量来链接基于Web的配置界面和项目设计。 我们还尝试配置控制器的系统时钟与精确时间服务器的同步。
本课程是针对3.1.4版创建的,目前已在预发布测试中。 您可以在此处下载。 您可以从中心的公司博客 , 项目网站和论坛 上了解有关FLProg项目的更多信息。 此外,在ArduinoProm频道上, 您可以观看各种各样的视频课程。我们将使用
上一课中创建的
项目作为基础。
首先,我们将创建三个系统用户参数,其中将存储控制器的当前系统时间,时区以及将与之同步的确切时间服务器的地址。 为此,我们在“
用户参数 ”节点的项目树中找到“
添加参数 ”分支。

将打开用于添加新系统参数的对话框。 填写。

在“
名称 ”字段中,输入参数的名称。 让我们选择参数的类型-“
String ”。 该参数的值会在运行期间动态变化,因此,我们将禁用将参数值保存在EEPROM中的功能。 因此,我们不设置默认值。 最大
行长为20(输出格式为
01:01:01 01-01-2018,即19个字符)。
以相同的方式添加第二个参数。

只需将保存内容保留在EEPROM中,以便控制器记住我们输入的服务器,并默认设置服务器。
最后,创建第三个参数,时区值,以正确显示时间。
整数参数类型,请确保保存在EEPROM中,这是您选择的默认值(我有4个小时)。
结果,我们得到了三个用户参数

我们转到固件方案。
在功能块库中,我们找到“
从NTP服务器获取时间 ”块并将其拖到电路的工作区域

双击该块将打开块参数编辑器。

让我们更详细地考虑设置。
NTP服务器 -将从中获取确切时间的服务器地址。 可以将其设置为常数。 您可以从标准列表中选择。 我检查了所有内容-它们起作用了。 要选择,请单击“
标准服务器 ”按钮。

但是,由于我们要从Web界面设置服务器地址“
成人 ”,因此请选中“
登录 ”复选框。
在接收到第一个响应之前,请求的时间是控制器“
敲 ”服务器直到它第一次接收到时间的频率。 我们每30秒保留一个恒定值。 也可以设置输入,然后必须以毫秒为单位应用一个值。
收到第一个响应后的请求时间是控制器检查服务器时间的频率。 默认情况下,我们每半小时离开一次。 您还可以通过输入设置(以毫秒为单位)。
时区 -由于服务器以GMT表示时间,因此此参数设置时区偏移量(以小时为单位)。 我们决定通过Web界面设置此参数,因此在“
登录 ”复选框中打勾
退出“年” ,
退出“月” ,
退出“日” ,
退出“小时” ,
退出“分钟” ,
退出“第二” -在本课中我们不需要它们,因此我们无需选中这些框。
“ Unix Time”输出-我们不需要此输出,我们也不需要打勾(说实话,我还没有为此发明一个用户案例。但是,以防万一,我这样做了,它对某人有用)。
总计我们获得了这样的阻止设置

因此,固件方案上的模块也已更改。

在库中找到“
Reading system parameter ”块,并将其拖到图上。

双击该块,然后开始配置其参数。
首先,按系统参数选择按钮。

打开用于选择系统参数的窗口。 选择参数“
时间服务器 ”

这样就完成了块设置。
我们方便地放置这些块并将“
读取系统参数 ”块的输出连接到“
从NTP服务器接收时间 ”块的“
服务器 ”输入。

将另一个块“
读取系统参数 ”拖到图表上,并将其配置为读取“
时区 ”参数。

我们将此块的输出连接到“
从NTP服务器接收时间 ”块的“
TimeZone ”输入。

在电路中添加新板。 为此,请单击“
添加板 ”按钮

我们关闭第一块板,我们将不再需要它。 为此,请单击第一块板标题中的箭头。

我们在第二块板上的电路上拔出“
从准确的时间时钟接收数据 ”块

双击它以调用块设置对话框。 通过点击“
New ”按钮,我们调出时钟选择对话框并选择“
Controller system clock ”。


然后我们打勾“
Output” Clock“ ”

至此,我们完成了块的编辑。
然后,我们将该块再复制5次,在每个块的设置中重新排列“
分钟-第二天-月-年 ”顺序中的退出标记。

现在,我们从库中将“
String Conversion ”块拉到图上。

在他的设置中,选择转化类型“
时间 ”

我们再复制5次,然后收集方案

从库中将块“
线的添加 ”传输到图

在块设置中,我们设置了11个输入。

然后我们根据方案连接块

在块的自由输入上,我们设置常数
输入2-“:”
输入4-“:”
输入6-空格
输入8-“-”
输入10-“-”
要设置常量,请右键单击一个自由输入,然后从下拉菜单中选择“
插入常量 ”。

常数输入窗口打开,在“
默认值 ”字段中输入所需常数。

现在我们从库中取出“
记录系统参数 ”块到电路上

在块设置中,取消选中“
记录权限输入 ”复选框,然后选择“
日期-时间 ”参数

我们将“
Line Addition ”块的输出与“
System Parameter Record ”块的输入连接起来

结果,我们应该得到这样的方案(为清楚起见,请部署第一块板)。

完成固件方案后,我们返回项目树。
我们将在Web界面的主页中添加三个参数(请参阅
上一课中的操作方法 )。
参数1-系统参数“
日期-时间 ”,参数类型-“
文本 ”,标签-“
时间 ”
参数2-系统参数“
精确时间服务器 ”,参数类型-“
输入字段 ”,标签-“
服务器 ”
参数3-系统参数“
时区 ”,参数类型-“
输入字段 ”,标签-“
时区 ”

打开页面上的“
保存 ”按钮

将程序倒入控制器,然后在主页上看到发生了什么(如何执行,请参阅
上一课 )
连接后立即-时间服务器尚未同步

一分钟后(刷新页面)-同步已通过

更改时区,然后单击保存

在课程中创建的项目可以在
此处下载。