關(guān)于計(jì)算設(shè)備運(yùn)行時(shí)間SCL代碼的測(cè)試與說明
有小伙伴使用西門子PLC仿真軟件對(duì)我前段時(shí)間寫的文章《西門子SCL編程實(shí)例-計(jì)算設(shè)備運(yùn)行時(shí)間(2)》進(jìn)行了測(cè)試,發(fā)現(xiàn)OB10中的代碼并沒有執(zhí)行,他問是不是代碼有問題?尤其是這條語句:
"myEquipmentData".equipment_data[0].totalRunningTime += 1;
這種"+="的寫法對(duì)嗎?
因?yàn)槲一静挥肞LC仿真軟件,所以我也不確定是不是仿真軟件沒有循環(huán)中斷的功能。但是我有PLC硬件——CPU1214FC
,所以我們下載到PLC里來實(shí)際測(cè)試下吧。

首先,解釋下這行代碼:
"myEquipmentData".equipment_data[0].totalRunningTime += 1;
代碼中的"+="是"相加并賦值"的意思。比如"C+=1;"等同于"C:=C+1;"
我最早學(xué)習(xí)這種語法是在計(jì)算機(jī)C語言中,現(xiàn)在西門子SCL語言也支持這種語法,能讓代碼更加簡(jiǎn)潔;所以這里,并沒有問題;
接下來我把代碼下載到CPU 1214FC中,并在線監(jiān)控。
起初,我發(fā)現(xiàn)OB10中的值并沒有像預(yù)期的那樣增加。問題出在哪里呢?
打開OB10的屬性,查看時(shí)間中斷的開始時(shí)間為2020/1/1-0:00,判斷的依據(jù)的是系統(tǒng)時(shí)間,如下圖:

那么目前系統(tǒng)時(shí)間是多少呢?
轉(zhuǎn)到【在線訪問】-【功能】-【設(shè)置時(shí)間】,可以看到PLC當(dāng)前系統(tǒng)時(shí)間為2012-1-19 10:06:53,如下圖所示:

這個(gè)時(shí)間還沒有到我們?cè)O(shè)定的時(shí)間,因此OB10并沒有啟動(dòng)運(yùn)行;
勾選【從PG/PC】獲取選項(xiàng),點(diǎn)擊【應(yīng)用】按鈕,可將PLC的系統(tǒng)時(shí)間設(shè)置成PG/PC的當(dāng)前時(shí)間,如下圖所示:

設(shè)置好時(shí)間后,重新對(duì)PLC進(jìn)行在線監(jiān)控,可以看到計(jì)時(shí)功能已經(jīng)啟用了。
下圖是系統(tǒng)運(yùn)行了2分鐘:

下圖是系統(tǒng)運(yùn)行了5分鐘:

好了,關(guān)于設(shè)備運(yùn)行時(shí)間的SCL代碼測(cè)試就介紹到這里了。感謝提出問題的小伙伴,在這種提問-回答的過程中,其實(shí)對(duì)你我都有幫助。大家以后學(xué)習(xí)過程中有什么問題,歡迎多交流。最后推薦下我的新書《西門子S7-200 SMART PLC應(yīng)用技術(shù)——編程、通信、裝調(diào)、案例》
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
