国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識 > 西門子SCL編程入門教程連載(14)-時鐘讀寫指令

西門子SCL編程入門教程連載(14)-時鐘讀寫指令

時間:2020-09-25 來源:方正智芯 瀏覽:

設(shè)備在生產(chǎn)制造過程的數(shù)據(jù)記錄需要有準(zhǔn)確的時間信息,以便對產(chǎn)品質(zhì)量進(jìn)行檢查、監(jiān)控及追溯;

PLC與人機(jī)界面(HMI)的時間需要保持同步,以便操作人員查看相關(guān)的信息;

所有這些需求,都涉及到對PLC時鐘的讀寫。今天這篇文章,我們就來介紹下如何使用西門子SCL編程語言提供的指令對PLC的時鐘進(jìn)行讀寫。

對PLC/CPU時鐘的讀寫,西門子SCL提供了RD_SYS_T(read system time)、WR_SYS_T(write system time)、RD_LOC_T(read local time)和WR_LOC_T(write local time)四種指令。

1、RD_SYS_T(read system time)

RD_SYS_T指令能讀取CPU的當(dāng)前系統(tǒng)時間,該指令有一個輸出參數(shù)(OUT)和一個返回值(RET_VAL)。
返回值RET_VAL的數(shù)據(jù)類型為整型(INT),用于返回指令執(zhí)行的狀態(tài),其編碼如下:

RET_VAL: 錯誤代碼(16進(jìn)制)

描述

0000

沒有錯誤

8081

OUT輸出值的范圍超出界限

輸出值OUT為指令讀取到的時間,該時間值不包括本地時區(qū)或夏令時偏移量等信息,其數(shù)據(jù)類型根據(jù)CPU類型的不同有所不同:

對于S7-1200系列CPU,其數(shù)據(jù)類型為DTL;

對于S7-1500系列CPU,其數(shù)據(jù)類型為DT、LDT或者DTL;

舉個例子:

首先定義兩個臨時變量tmp_cpu_system_time和tmp_return,如下圖:

使用指令RD_SYS_T讀取系統(tǒng)時間并存放到tmp_cpu_system_time中,代碼如下:

2、WR_SYS_T (write system time)

WR_SYS_T指令能夠設(shè)置CPU的當(dāng)前系統(tǒng)時間。
該指令有一個輸入?yún)?shù)(IN)和一個返回值(RET_VAL);
返回值RET_VAL返回指令執(zhí)行的狀態(tài),其編碼如下:

RET_VAL: 錯誤代碼(16進(jìn)制)

描述

0000

沒有錯誤

8080

日期錯誤

8081

時間錯誤

8082

月(month)數(shù)值無效

8083 日(day)數(shù)值無效
8084 小時(hour)數(shù)值無效
8085 分鐘(minute)數(shù)值無效
8086 秒(second)數(shù)值無效
8087 納秒(nanosecond)數(shù)值無效
80B0 實(shí)時時鐘故障

輸入?yún)?shù)IN是要設(shè)置的時間值,不包括本地時區(qū)或夏令時偏移。

其數(shù)據(jù)類型根據(jù)CPU類型的不同有所不同:
對于S7-1200系列CPU,其數(shù)據(jù)類型為DTL;
對于S7-1500系列CPU,其數(shù)據(jù)類型為DT、LDT或者DTL;
舉個例子:

使用WR_SYS_T指令設(shè)置CPU的系統(tǒng)時間為2019-12-17 10:00:00,代碼如下:

3、RD_LOC_T (read local time)

RD_LOC_T指令能讀取CPU的本地時間,該指令有一個輸出參數(shù)(OUT)和一個返回值(RET_VAL)。
與RD_SYS_T指令不同,如果當(dāng)前CPU有設(shè)置時區(qū)或夏令時,則 RD_LOC_T指令會輸出當(dāng)前時區(qū)的時間或夏令時。
RET_VAL的數(shù)據(jù)類型為整數(shù)(INT),返回指令執(zhí)行的狀態(tài),其編碼如下:

RET_VAL: 錯誤代碼(16進(jìn)制)

描述

0000

沒有錯誤

0001

沒有錯誤,輸出為夏令時

8080

無法讀取CPU的系統(tǒng)時間

8081

OUT輸出值的范圍超出界限

輸出值OUT的數(shù)據(jù)類型根據(jù)CPU的不同有所不同:
對于S7-1200系列CPU,輸出值OUT的數(shù)據(jù)類型為DTL;

對于S7-1500系列CPU,輸出值OUT的數(shù)據(jù)類型為DT、LDT或者DTL;
使用RD_LOC_T讀取CPU的本地時間并存放到tmp_cpu_local_time中,代碼如下:

4、WR_LOC_T (write local time)

WR_LOC_T指令用來設(shè)置CPU的本地時間,該指令有兩個輸入?yún)?shù)(LOCTIME和DST)和一個返回值(RET_VAL)。
RET_VAL的數(shù)據(jù)類型為整數(shù)(INT),返回指令執(zhí)行的狀態(tài),其代碼如下:

RET_VAL: 錯誤代碼(16進(jìn)制)

描述

0000

沒有錯誤

8080

LOCTIME的值無效

8081

LOCTIME的值超出界限

LOCTIME是要寫入的時間值,數(shù)據(jù)類型為DTL(S7-1200)或者DT、LDT、DTL(S7-1500);
DST是英文"Daylight Saving Time"的首字母縮寫,表示“夏令時”。數(shù)據(jù)類型為布爾型,TRUE表示采用夏令時,F(xiàn)ALSE表示采用標(biāo)準(zhǔn)時間;
舉個例子:

設(shè)置CPU的本地時間為2019-12-17 10:15:00(非夏令時),代碼如下:

好了,關(guān)于西門子SCL編程語言時鐘讀寫指令就先介紹到這里。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時內(nèi)刪除。
相關(guān)推薦