0

ここ数時間、構造化テキスト プログラミングによるシステムの日付と時刻の変更に関する問題に直面しています。システム時間を読み取ることができる関数ブロックFB_LocalSystemTimeを使用しました。しかし、新しいシステム時刻を書き込むための関数または関数ブロックが見つかりませんでした。NT_SetLocalTimeを確認しましたが、これも機能しませんでした。どうすればそれができるか分かりますか?

詳細については、次のようなサンプル コードを含めました。

    /**
    宣言部
    **/
     fbLocalSystemTime:FB_localSystemTime;
     fbSetLocalTime:NT_SetLocalTime;
     newTime:TIMESTRUCT:=(wHour:=5);



    /**
    定義部
    **/

    fbLocalSystemTime(); /*これによりシステム時刻が得られます*/
    fbSetLocalTime.TIMESTR:=newTimne; /* 設定する新しい時間 */
    fbSetLocalTime.START:=TRUE;
    fbSetLocalTime(); /** これはシステム時刻を設定しません **/

4

4 に答える 4

0

以下に示す方法で FB_LocalSystemTime を使用することを検討してください。これにより、パラメーターsNetIDに渡された特定の AMS ID を使用して、ローカル PLC 時刻がシステムと同期されます。sNetIDパラメータを渡さない場合、ローカル PLC 時刻を設定するための参照としてローカル OS システムが使用されます。時刻は、信号bEnableの立ち上がりエッジで同期され、次にパラメーターdwCycleで指定された間隔で同期されます。

VAR
  {attribute 'hide'}
  LocalSysTime : FB_LocalSystemTime;
  SynchNodeAmsId : STRING := '10.10.10.1.1.1';
END_VAR

LocalSysTime(
    sNetID:= SynchNodeAmsId,  
    bEnable:= TRUE, 
    dwCycle:= 60, 
    dwOpt:= , 
    tTimeout:= , 
    bValid=> , 
    systemTime=> , 
    tzID=> );
于 2016-04-10T06:40:06.963 に答える