6ES7223-3AD30-0XB0西門子S7-1200,數(shù)字量 I/O SB 1223
![]() |
SIMATIC S7-1200,數(shù)字量 I/O SB 1223,2DI/2DQ,5V DC 200kHz
|
![]() |
警告 如果攻擊者能通過(guò)網(wǎng)絡(luò)時(shí)間協(xié)議 (Network Time Protocol, NTP) 同步訪問您的網(wǎng)絡(luò),那么便可能通過(guò)改變 CPU 系統(tǒng)時(shí)間來(lái)有限地控制您的過(guò)程。默認(rèn)情況下,S7?1200 CPU 的 NTP 客戶端功能處于禁用狀態(tài),啟用該功能時(shí),僅允許將已組態(tài)的 IP 地址用作 NTP 服務(wù)器。CPU 在默認(rèn)情況下禁用此功能,必須組態(tài)此功能才能實(shí)現(xiàn)遠(yuǎn)程控制 CPU 系統(tǒng)時(shí)間修正。 S7?1200 CPU 支持“日時(shí)鐘”中斷和時(shí)鐘指令,這兩個(gè)指令均依賴于精確的 CPU 系統(tǒng)時(shí)間。如果組態(tài) NTP 并接受從服務(wù)器進(jìn)行時(shí)間同步,那么必須確保服務(wù)器是可靠來(lái)源。否則會(huì)導(dǎo)致安全漏洞,從而使未知用戶能夠通過(guò)改變 CPU 系統(tǒng)時(shí)間來(lái)有限地控制您的過(guò)程。 有關(guān)安全信息和建議,請(qǐng)參見 Siemens 服務(wù)與支持網(wǎng)站上的“工業(yè)安全操作準(zhǔn)則”。 |
時(shí)鐘指令用于設(shè)置和讀取 CPU 系統(tǒng)時(shí)鐘。使用數(shù)據(jù)類型 DTL 提供日期和時(shí)間值。
列表: 系統(tǒng)時(shí)間指令
LAD/FBD |
SCL |
說(shuō)明 |
---|---|---|
ret_val := WR_SYS_T( in:=_DTL_in_);
|
WR_SYS_T(設(shè)置時(shí)鐘)使用參數(shù) IN 中的 DTL 值設(shè)置 CPU 時(shí)鐘。該時(shí)間值不包括本地時(shí)區(qū)或夏令時(shí)偏移量。 |
|
ret_val := RD_SYS_T( out=>_DTL_out);
|
RD_SYS_T(讀取時(shí)間)從 CPU 中讀取當(dāng)前系統(tǒng)時(shí)間。該時(shí)間值不包括本地時(shí)區(qū)或夏令時(shí)偏移量。 |
|
ret_val := RD_LOC_T( out=>_DTL_out);
|
RD_LOC_T(讀取本地時(shí)間)以 DTL 數(shù)據(jù)類型提供 CPU 的當(dāng)前本地時(shí)間。該時(shí)間值反映了就夏令時(shí)(如果已經(jīng)組態(tài))進(jìn)行過(guò)適當(dāng)調(diào)整的本地時(shí)區(qū)。 |
|
ret_val := WR_LOC_T( LOCTIME:=DTL_in_, DST:_in_;
|
WR_LOC_T(寫入本地時(shí)間)設(shè)置 CPU 時(shí)鐘的日期與時(shí)間。您可使用 DTL 數(shù)據(jù)類型在 LOCTIME 中將日期和時(shí)間信息指定為本地時(shí)間。該指令使用“TimeTransbationRule”數(shù)據(jù)塊結(jié)構(gòu)計(jì)算系統(tǒng)時(shí)間。本地時(shí)間和系統(tǒng)時(shí)間的時(shí)間信息間隔特定于產(chǎn)品并且至少為一毫秒。如果 LOCTIME 參數(shù)的輸入值小于 CPU 支持的輸入值,則這些值在系統(tǒng)時(shí)間計(jì)算期間將進(jìn)位。 注:必須使用 CPU 設(shè)備組態(tài)設(shè)置“時(shí)鐘”(Time of day) 屬性(時(shí)區(qū)、DST 激活、DST 啟動(dòng)和 DST 停止)。否則,WR_LOC_T 不能解釋 DST 時(shí)間更改。 |
列表: 參數(shù)的數(shù)據(jù)類型
參數(shù)和類型 |
數(shù)據(jù)類型 |
說(shuō)明 |
|
---|---|---|---|
IN |
IN |
DTL |
要在 CPU 系統(tǒng)時(shí)鐘內(nèi)設(shè)置的時(shí)間 |
OUT |
OUT |
DTL |
RD_SYS_T:當(dāng)前 CPU 系統(tǒng)時(shí)間 RD_LOC_T:當(dāng)前本地時(shí)間,包括任何對(duì)夏令時(shí)的調(diào)整(如組態(tài)) |
LOCTIME |
IN |
DTL |
WR_LOC_T:本地時(shí)間 |
DST |
IN |
BOOL |
WR_LOC_T:Daylight Saving Time僅在“雙重小時(shí)值”期間時(shí)鐘更改為夏令時(shí)才進(jìn)行求值。
|
RET_VAL |
OUT |
Int |
執(zhí)行條件代碼 |
提示 夏令時(shí)和標(biāo)準(zhǔn)起始時(shí)間組態(tài)CPU 設(shè)備組態(tài)的“夏令時(shí)開始”(Start for daylight saving time) 的“時(shí)間”(Time of day) 屬性必須是本地時(shí)間。 |
條件代碼:ENO = 1 表示未發(fā)生錯(cuò)誤。ENO = 0 表示發(fā)生了執(zhí)行錯(cuò)誤,同時(shí)在 RET_VAL 輸出中提供條件代碼。
RET_VAL (W#16#....) |
說(shuō)明 |
---|---|
0000 |
當(dāng)前的本地時(shí)間為標(biāo)準(zhǔn)時(shí)間。 |
0001 |
夏令制時(shí)間已組態(tài),當(dāng)前的本地時(shí)間為夏令制時(shí)間。 |
8080 |
本地時(shí)間不可用或 LOCTIME 值無(wú)效。 |
8081 |
年份值非法或 LOCTIME 參數(shù)分配的時(shí)間值無(wú)效 |
8082 |
月份值非法(DTL 格式中的字節(jié) 2) |
8083 |
日期值非法(DTL 格式中的字節(jié) 3) |
8084 |
小時(shí)值非法(DTL 格式中的字節(jié) 5) |
8085 |
分鐘值非法(DTL 格式中的字節(jié) 6) |
8086 |
秒數(shù)值非法(DTL 格式中的字節(jié) 7) |
8087 |
納秒值非法(DTL 格式中的字節(jié) 8 到 11) |
8089 |
時(shí)間值不存在(轉(zhuǎn)換為夏令時(shí)時(shí),小時(shí)已過(guò)) |
80B0 |
實(shí)時(shí)時(shí)鐘發(fā)生了故障 |
80B1 |
尚未定義“TimeTransbationRule”結(jié)構(gòu)。 |
6ES7223-3AD30-0XB0西門子S7-1200,數(shù)字量 I/O SB 1223