国内精品一区二区三区四区视频-国产成人激情视频在线免费看-av中文字幕一区人妻-精精国产XXXX视频第一次

讀取PLC時間轉(zhuǎn)換為UNIX時間做網(wǎng)絡同步比較

2019/10/14 16:08:50 人評論 次瀏覽 分類:PLC應用  文章地址:http://yigongchang99.com/tech/2738.html

最近在安全行業(yè)里做讀取PLC內(nèi)部故障事件分析的工作,發(fā)現(xiàn)在PLC網(wǎng)絡里采用NTP時間同步基本上沒有,因為在工控領域PLC更多承擔業(yè)務層面控制需求的實現(xiàn),反而對于PLC本身的安全并沒有過多的重視。

多區(qū)域內(nèi)PLC時間同步就是安全設置的必要一步,因為這個會涉及PLC內(nèi)部的事件和記錄是否能夠按照真實的時間進行提取和分析。那在不同網(wǎng)段讀取不同廠商PLC時間進行比較和同步就成為一個比較麻煩的事情。不同廠商PLC的日期和時間比較需要用到一個INT數(shù)組數(shù)據(jù)來比較。所以才有了這需求打算采用Unix 時間來做時間對比,因為所有廠商的PLC的日期和時間都可以轉(zhuǎn)成Unix時間。


什么是Unix時間?
Unix時間(英文為Unix epoch, Unix time, POSIX time或Unix timestamp)是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。UNIX時間的0按照ISO 8601規(guī)范為:1970-01-01T00:00:00Z。一個小時表示為UNIX時間格式為:3600秒;一天表示為UNIX時間為86400秒,閏秒不計算。

時間                    秒

1分鐘                  60秒

1小時                  3600秒
1天                     86400秒
1周                     604800秒
1月(30.44天)       2629743秒
1年(365.24天)     31556926 秒


下面將采用結構化文本的形式來開發(fā)這個PLC時間轉(zhuǎn)成Unix時間,為了方便大家在其他的PLC中實現(xiàn)時間格式的轉(zhuǎn)換。
// Convert system time to unix time
// (seconds until 1970-01-01 00:00)
// Create by jiansiting
 
FUNCTION Unixtime : DWORD
 
VAR_INPUT
END_VAR
 
VAR_TEMP
leapyears:INT;
days_from_1970  : DINT;
days_from_BeginOfYear : ARRAY[1..12] OF INT;
l_unixtime:DINT;
sfc1_ret_val:INT;
CDT_systemtime:DATE_AND_TIME;
systemtime AT CDT_systemtime : STRUCT
    year_CDT:BYTE; // 1970 ... 2038
    month_CDT:BYTE;
    day_CDT:BYTE;
    hour_CDT:BYTE;
    minute_CDT:BYTE;
    second_CDT:BYTE;
END_STRUCT;
 
year:INT; // 1970 ... 2038
month:INT;
day:INT;
hour:INT;
minute:INT;
second:INT;
END_VAR
 
leapyears:= 0;
days_from_1970  := 0;
 
// days of current month without leap day
 
days_from_BeginOfYear[1]  :=   0;  
days_from_BeginOfYear[2]  :=  31;  
days_from_BeginOfYear[3]  :=  59;  
days_from_BeginOfYear[4]  :=  90;  
days_from_BeginOfYear[5]  := 120;  
days_from_BeginOfYear[6]  := 151;  
days_from_BeginOfYear[7]  := 181;  
days_from_BeginOfYear[8]  := 212;  
days_from_BeginOfYear[9]  := 243;  
days_from_BeginOfYear[10] := 273;  
days_from_BeginOfYear[11] := 304;  
days_from_BeginOfYear[12] := 334;  
 
// read system time
sfc1_ret_val:= READ_CLK(CDT := CDT_systemtime);
year:= BCD_TO_INT(systemtime.year_CDT) + 2000;
month:= BCD_TO_INT(systemtime.month_CDT);                       
day:= BCD_TO_INT(systemtime.day_CDT);
hour:= BCD_TO_INT(systemtime.hour_CDT);
minute:= BCD_TO_INT(systemtime.minute_CDT);
second:= BCD_TO_INT(systemtime.second_CDT);
 
// sum of leap years since 1979 (without current leap year)
leapyears := ((year-1)-1968)/4-((year-1)-1900)/100+((year-1)-1600)/400;
days_from_1970 := (year-1970)*365 + leapyears+ days_from_BeginOfYear[month] + day-1;
 
IF ( (month > 2) AND ((year MOD 4 = 0) AND ((year MOD 100 <> 0) OR (year MOD 400 = 0))) ) THEN
    days_from_1970 := days_from_1970 + 1; // + leap day, if year is leap year
END_IF;
 
// OUTPUT in s
l_unixtime :=  second + 60 * ( minute + 60 * (hour + 24 * days_from_1970) );
 
 
// if error return 0
IF  sfc1_ret_val <> 0 THEN
    Unixtime := 0;
ELSE      
    Unixtime := DINT_TO_DWORD(l_unixtime);
END_IF;
 
END_FUNCTION
者:劍思庭

共有訪客發(fā)表了評論 網(wǎng)友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?
主站蜘蛛池模板: 91日韩中文字幕在线观看| 久久美女亚洲精品一区二区| 东京热日本久久久了| 麻豆一区二区三这在线观看| 亚洲精品中文字幕无乱码蜜桃| 国产91精品国自产拍一区二区| 欧美日韩播放一区二区三区| 色老头国产av一区二区三区| 国产精品一区二区三区免费观看| 成人欧美一区在线视频| 美女久久精品国产美女| 国产1区二区在线观看视频| 欧美日本亚洲青青草原| 亚洲av男人天堂久久| 午夜剧院免费午夜福利| 欧美成人一区二区免费在线| 亚洲欧美日韩综合久久亚洲| 亚洲一区在线中文播放| 国产精品日韩欧美区二区三区| 日韩欧美久久久一区二区三区| 欧美激情一区二区免费在线| 操一操成人在线免费视频| 欧洲亚洲激情另类综合一区 | 91麻豆天美在线观看| 免费在线亚洲成人av| 熟女肥臀白浆大屁股一区二区| 不卡无在线一区二区三区被窝| 久久精品国产再热青青青| 欧美日韩精品二区在线| 国产放荡激情视频在线观看| 麻豆网站免费观看视频| 国产av成年人的大片| 日韩午夜福利在线视频免费播放| 亚洲一区国产精品骚熟女| 麻豆精品丝袜人妻久久| 欧美成人精品一区二区老牛| 亚洲精品少妇被粗大猛进| 亚洲欧美成人另类激情| 在线视频欧美日韩国产一区二区| 亚洲av乱码一区二区三区老太| 国产一区二区三区亚洲综合|