n
说明:
WinCC flexible和SIMOTION控制器之间的日期和时间同步通过外部变量实现。SIMOTION程序周期性地读取SIMOTION系统时间,该系统时间再通过组态变量传送到WinCC flexible中。通过两个目录中的脚本功能实现同步。
n
序号 |
过程 |
1 |
创建SIMOTION项目: 在进行日期和时间同步时,需要打开一个安装SIMOTION设备的项目。n
图 01 n
注意事项: 可以通过“Create new device”添加一个新设备或多个设备。 |
2 | 在SIMOTION Scout中创建/导入一个结构化程序: 在项目目录中,为创建或添加的设备在“Programs”目录中添加一个新的ST程序。n
图 02 n
注意事项: 另外,用户也可以下载Uhr.zip文件并通过弹出菜单(鼠标右键单击“Programs”)导入解压后的“Uhr.st”文件。在弹出菜单中选择“Import external source”和“ST source file” 。n
图 03
|
3 | 创建全局变量和程序: WinCC flexible和SIMOTION Scout之间的数据通讯需要全局变量。通过创建的ReadClock和SetClock功能读取或设置系统时间。 n
图 04 n
注意事项: ReadClock和SetClock功能为RTC类型。调用这些功能时,必须传递外参以便执行相应的功能。可以通过调用CDT的方法,读取当前系统时间。n
标识符 |
参数 |
数据类型 |
说明 |
SET |
输入 |
Boolean |
设置时间,缺省值为FALSE |
READ |
输入 |
Boolean |
读取时间,缺省值为FALSE |
PDT |
输入 |
DT |
实时时钟要设置的值,缺省值为DT#0001-01-01-00:00:00。如果该值早于SIMOTION设备的实时时钟缺省值,则将该实时时钟设置为缺省值(如C320-2:DT#1994-01-01-00:00:00)。 |
CDT |
输出 |
DT |
当前系统时间 |
示例: 通过调用下列功能读取系统时间,并通过CDT方法传送当前时间: ReadClock( FALSE, TRUE, DT#2005-01-01-0:0:0); ReturnValue = ReadClock.CDT;n
注意事项: 通过菜单选择“ST source file > Accept and compile”,或点击如下所示工具栏的图标测试结构化程序的语法错误。n
接收并编译 |
4 | 在运行系统中定义程序调用: 对于在SIMOTION Scout中创建或导入的程序,也必须在执行系统中将其定义为后台任务。 n
- 点击项目导航栏中的“Execution System”菜单,并选择“Execution levels > Operation levels > BackgroundTask”。n
- 选择“Uhr.clock()”程序,并点击“Add”按钮添加该程序。
图 05 n
然后,编译SIMOTION组态并将其传送到SIMOTION设备。 |
5 | 在WinCC flexible创建SIMOTION连接: 必须在WinCC flexible中创建SIMOTION设备连接。 n
在项目树中的“Communication > Coections”下创建一个新的连接,并选择通讯驱动器“SIMOTION”。n
图 06 n
注意事项: WinCC flexible不支持使用区域指针“Date/Time PLC”实现与SIMOTION设备的时间同步,因为WinCC flexible中“DATE_AND_TIME”的数据类型与SIMOTION数据类型不同。 |
6 | 为时间同步添加变量: 在项目树中的“Communication > Tags”下创建所需的所有变量: n
- Uhr.setn
- Uhr.time_paneln
- Uhr.time_plc
图 07
|
7 | 创建脚本: n
- 添加一个名称为“SetPanelClk”的新脚本。n
- 在脚本编辑器中创建6个脚本变量(second、minute、hour、day、month、year),并通过外部变量“Uhr.time_plc”使用正确的VBS功能(如day、month等)指定相关的时间基准。
在Windows操作系统中,可以通过带有“Date”和“Time”系统功能的命令控制台(CMD)修改面板系统时间。通过脚本功能“Call”和“StartProgram”调用Windows控制台。n
脚本—SetPanelClkn
图 08
注意事项: 根据选择的位置,在日期中必须将点或点划线选为分隔符。n
“StartProgram”功能的说明 在脚本编辑器中,功能说明用红色显示。“StartProgram”功能结构的定义如下:
StartProgram(<ProgName>, <Param>, <Layout>, <Wait>) n
参数 |
含义 |
说明 |
ProgName |
程序名称 |
要启动程序的名称和路径 |
Param |
程序参数 |
程序启动时传送的参数。如:程序启动后打开的文件。 |
Layout |
显示 |
定义操作员面板如何显示程序窗口: n
0 (hmiShowNormal) |
=正常 |
1 (hmiShowMinimized) |
=最小化 |
2 (hmiShowMaximized) |
=最大化 |
3 (ShowMinimizedAndInactive) |
=最小化不激活 |
|
Wait |
等待结束 |
定义调用程序结束后是否返回项目: n
0 (hmiNo) = |
No: 不返回项目 |
1 (hmiYes) = |
Yes: 返回项目 |
|
注意事项: 可以通过选择按钮图标(参看下图)或者选择“Script”菜单(只有当脚本编辑器打开时才可用)检查脚本语法错误。 检查语法 |
8 | 创建另外一个脚本:
- 创建第二个脚本,并将其重新命名为“Clk_sys_in_var”。n
- 使用关键字“Now”为已创建的“Uhr.time_panel”变量赋值。
“Now”功能为面板或PC发送当前系统日期和时间。n
脚本——Clk_sys_in_varn
图 09
|
9 | 创建画面和对象: 创建两个按钮,两个日期—时间域和一个带有系统消息的报警视图(可选)作为新画面的一个报警事件。 n
图 10
注意事项: 报警视图只是作为辅助组态使用的。在其它事情中,显示器显示的那些需要清晰组态的系统消息可以表明SIMOTION是否连接到了面板。 |
10 | 连接变量: 然后,将上面的日期/时间域连接到先前创建的“Uhr.time_plc”变量。在下面的日期/时间域中选择“Display system time”。
图 11
|
11 | 将脚本连接到按钮:
- 在“Events > Click”下的“ime Panel > CPU”属性中连接“Clk_sys_in_var”脚本。
- 另外,创建“SetBit”功能并连接“Uhr.set”变量。
- 应用与第一个按钮相同的原则,将第二个脚本“SetPanelClk”连接到“Time CPU > Panel”按钮。
图 12
|
现在就可以将组态传送到面板或启动PC运行系统了。
下载结构化的SIMOTION程序:
该文件包含可以导入SIMOTION Scout V4.0的“Uhr.st”的文件。
Uhr.zip ( 508 bytes )
下载示例项目:
该压缩文件包含说明中提到的SIMOTION-WinCC flexible项目。运行WinCC flexible项目,需要WinCC flexible 2005 SP1以上版本。
Simotion_WinCC_flexible.zip ( 2837 KB )
运行和测试环境:
用于创建该条目并校验上述功能需要下表所列的组件。
组件 |
产品版本 |
PC操作系统 |
Microsoft WindowsXP SP2 |
标准工具 |
|
工程工具 |
SIMOTION Scout V 4.0 |
HMI软件 |
WinCC flexible 2005 SP1 |
HMI系统 |
- |
SIMOTION设备 |
C230 |
关键字:
日期同步,时间同步
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc338365.html