获取和设置PLC日期和时间Get and set PLC date and time

<< 点击显示目录 >>

主页  mappView帮助助手 > mappView入门简单Wiki >

获取和设置PLC日期和时间Get and set PLC date and time



需要

Automation Studio 4.5

mappView 5.9.2

描述

例子程序 -->例子项目<-- 显示如何使用 DateTimeInput 小部件获取和设置 PLC 时间和日期。 将任务名称“Program”替换为您正在使用的任务名称或使用全局变量时的 AsGlobalPV。

实现

将库 astime 添加到项目中

定义以下 PLC 变量

VAR
 visDateTime : DATE_AND_TIME;
 DTGetTime_01 : DTGetTime;
 visGetDateTime : BOOL;
 DTSetTime_01 : DTSetTime;
 visSetDateTime : BOOL;
END_VAR

将以下代码添加到结构文本 PLC 任务中

// Get PLC time and date
IF(visGetDateTime) THEN
 DTGetTime_01.enable := 1;
 DTGetTime_01();
 IF(DTGetTime_01.status = 0) THEN
  visGetDateTime := 0;
  visDateTime := DTGetTime_01.DT1;
 END_IF
END_IF
// Get PLC time and date
IF(visSetDateTime) THEN
 DTSetTime_01.enable := 1;
 DTSetTime_01.DT1 := visDateTime;
 DTSetTime_01();
 IF(DTSetTime_01.status = 0) THEN
  visSetDateTime := 0;
 END_IF
END_IF

在 OPC UA 配置中启用变量 visGetDateTime、visSetDateTime 和 visDateTime

向页面添加一个 DateTimeInput 小部件和两个按钮

将变量 visDateTime 绑定到 DateTimeInput 小部件

<Binding mode="twoWay">
 <Source xsi:type="opcUa" refId="::Program:visDateTime" attribute="value" />
 <Target xsi:type="brease" contentRefId="contentStart" widgetRefId="DateTimeInput1" attribute="value" />
</Binding>

添加事件绑定以获取和设置 PLC 时间

<!--< Event binding for get time />-->
  <EventBinding id="contentStart.btnGetTimeDate.Click">
    <Source contentRefId="contentStart" widgetRefId="btnGetTimeDate" xsi:type="widgets.brease.Button.Event" event="Click" />
    <EventHandler>
      <Action>
        <Target xsi:type="opcUa.NodeAction" refId="::Program:visGetDateTime" >
          <Method xsi:type="opcUa.NodeAction.SetValueBool" value="true" />
        </Target>
      </Action>
   </EventHandler>
</EventBinding>
 
<!--< Event binding for set time />-->
<EventBinding id="contentStart.btnSetTimeDate.Click">
  <Source contentRefId="contentStart" widgetRefId="btnSetTimeDate" xsi:type="widgets.brease.Button.Event" event="Click" />
  <EventHandler>
    <Action>
      <Target xsi:type="opcUa.NodeAction" refId="::Program:visSetDateTime" >
        <Method xsi:type="opcUa.NodeAction.SetValueBool" value="true" />
      </Target>
    </Action>
  </EventHandler>
</EventBinding>