現(xiàn)在的問題是:日期時(shí)間可以正常顯示、正常設(shè)置,,但是顯示的星期幾在我的日期通過設(shè)置改變了以后不隨之更新,。比如今天是11年12月15日星期四,當(dāng)我把日期改成12月16日,,還是顯示星期四,。
我想問的是:當(dāng)我把日期改了之后,時(shí)間緩沖區(qū)中的星期數(shù)據(jù)不會(huì)同步自動(dòng)更新嗎?
答:可能是你用SET_RTC指令時(shí),,星期這一位是空的,,那么寫進(jìn)去的是0,0是無效數(shù)據(jù),。
也有可能是你的SET_RTC和READ_RTC使用了相同的地址表,,你讀上來的星期字節(jié)是5(星期四)然后你只修改了日期值,沒有修改星期值,,又重新寫回去了,。這樣PLC是不會(huì)判斷這個(gè)星期值是否對應(yīng),只會(huì)按照你當(dāng)前輸入數(shù)值為基礎(chǔ)來循環(huán)計(jì)算星期值,。
輸出參數(shù) “DONE”,, “ERROR” 和 “STATUS”用于任務(wù)評(píng)估,并且只在同一個(gè)周期內(nèi)有效,。
圖.03

圖. 04
當(dāng)發(fā)送任務(wù)成功完成后,,“SND_BUSY” 被復(fù)位。 然后可以觸發(fā)下一個(gè)發(fā)送任務(wù),。
圖.05
例程說明
S7 程序包含來自 SIMATIC_NET_CP 庫的通訊功能塊 FC50 “AG_LSEND”和 FC60 “AG_LRECV”的調(diào)用,。 FC50 “AG_LSEND”用于發(fā)送數(shù)據(jù)到 S7 或 S5 站,PC 或者第三方系統(tǒng),。FC60 “AG_LRECV” 用于接收來自 S7 或 S5 站,,PC站或第三方系統(tǒng)的數(shù)據(jù)。
例程中通訊功能塊 FC50 "AG_LSEND" 和 FC60 "AG_LRCV" 用于 ISO-on-TCP 連接的通訊,。
首先創(chuàng)建 S7-400 站的硬件配置,。
注意:
將 MB10 配置為時(shí)鐘標(biāo)志。發(fā)送任務(wù)由該時(shí)鐘標(biāo)志觸發(fā),。保存并編譯 S7-400 站的硬件組態(tài)并裝載到 CPU,。
例程中用到了定時(shí)器 T10 。
然后在 NetPro 中為 CPU 配置一種上面提到的通訊連接,。如果通訊伙伴也在該 STEP7 項(xiàng)目中一起配置,,可以配置一個(gè)的通訊連接,。如果通訊伙伴沒有與 S7-400 站在同一個(gè) STEP7 項(xiàng)目下,可以配置一個(gè)未的通訊連接,。配置通訊連接時(shí),,確認(rèn) IP 地址或 Profibus 地址已經(jīng)正確分配。 同樣,,確認(rèn) PORT,,TSAP,LSAP 已經(jīng)正確分配,。這些 用于識(shí)別通訊伙伴間的通訊連接,。
FC50 “AG_LSEND”和 FC60 “AG_LRECV”的輸入?yún)?shù)“ID”和“LADDR”必須被。該參數(shù)在通訊連接的屬性對話框“常規(guī)”選項(xiàng)卡中設(shè)置,。
圖1
STEP7 的程序由塊 OB100, OB1, FB200, DB200, DB201, FC50 和 FC60 組成,。
OB100:
OB100 是啟動(dòng)組織塊,當(dāng) CPU 重新啟動(dòng)(暖啟動(dòng))時(shí)運(yùn)行,。在這個(gè)組織塊中通過 M1.0 使能**次通訊觸發(fā)器,。
OB1:
OB1 循環(huán)組織塊。在這個(gè)組織塊中調(diào)用 FB200 (背景數(shù)據(jù)塊:DB200) ,,使用 M0.3“INIT” 作為參數(shù) (INIT_COM),。FB200一旦執(zhí)行則復(fù)位 M0.3。

圖. 02
FB200
FB200 在 OB1 中調(diào)用,。在 FB200 中調(diào)用了 FC50 “AG_LSEND” 和 FC60 “AG_LRECV”,。
參數(shù)化FC50"AG_LSEND"
在FC50 的輸入?yún)?shù)“ACT”得到一個(gè)上升沿后觸發(fā)發(fā)送任務(wù)。 時(shí)鐘標(biāo)志位 M10.7和變量 “SND_BUSY”及"CONNECTION_BROKEN_SEND"參數(shù)控制發(fā)送任務(wù)的觸發(fā),。當(dāng)發(fā)送任務(wù)正在執(zhí)行時(shí),“SND_BUSY”被置位 ,,此時(shí)不能觸發(fā)新的發(fā)送任務(wù),,由于功能塊的執(zhí)行是異步的,并可以持續(xù)幾個(gè)周期,,所以聯(lián)鎖功能尤其重要,。如果不等待**個(gè)發(fā)送工作成功完成或出錯(cuò)終止就不間斷的觸發(fā)新的發(fā)送任務(wù)會(huì)引起通訊過載。 如果連接沒有建立,,通訊塊每10s被調(diào)用1次同時(shí)觸發(fā)發(fā)送任務(wù),。
輸入?yún)?shù) “ID” 和 “LADDR”的值必須取自 NetPro中通訊連接的屬性對話框(參見 圖01)。需要為 FC50 的 “SEND”輸入?yún)?shù)包含將要發(fā)送數(shù)據(jù)的數(shù)據(jù)區(qū)地址和長度(發(fā)送緩沖區(qū)),, 例如: P#DB201.DBX0.0 BYTE 100,。
在“LEN”輸入?yún)?shù)中鍵入要發(fā)送的字節(jié)數(shù),本例中是100,。