wincc中變量的數(shù)據(jù)類型可能會不同于自動化系統(tǒng)中所使用的數(shù)據(jù)類型。因此,當組態(tài)外部變量時,除了要定義該變量的數(shù)據(jù)類型,還必須對所有數(shù)字型數(shù)據(jù)類型執(zhí)行類型轉(zhuǎn)換。類型轉(zhuǎn)換定義如何從wincc格式轉(zhuǎn)換到as格式,該定義適用于雙向傳送。
下表顯示哪些wincc數(shù)據(jù)類型支持類型轉(zhuǎn)換:
數(shù)據(jù)類型
類型轉(zhuǎn)換
二進制變量
否
無符號8位數(shù)
是
有符號8位數(shù)
是
無符號16位數(shù)
是
有符號16位數(shù)
是
無符號32位數(shù)
是
有符號32位數(shù)
是
浮點數(shù)32位ieee 754
是
浮點數(shù)64位ieee 754
是
文本變量8位字符集
否
文本變量16位字符集
否
原始數(shù)據(jù)類型
否
有關(guān)類型轉(zhuǎn)換的詳細信息,您可在wincc信息系統(tǒng)中的“通訊”>“過程通訊”>“wincc過程通訊”>“外部變量”中找到。
下面我們分別說明如何利用wincc的類型轉(zhuǎn)換功能來實現(xiàn)在wincc項目中監(jiān)控300/400plc中的time,s5time數(shù)據(jù)類型變量及定時器和計數(shù)器的值。
1.在wincc項目中監(jiān)控s7 300/400 plc中的time類型變量
1.1關(guān)于time數(shù)據(jù)類型
time為帶符號的32位iec時間數(shù)據(jù)類型,時間增量為1ms,取值范圍為t#-24d_20h_31m_23s_648ms至t#24d_20h_31m_23s_647ms。
1.2具體步驟
(1) 在step中創(chuàng)建plc站的db1,并在db中創(chuàng)建time類型的變量t,如下圖所示:
圖 1.2.1
(2) 在wincc項目中創(chuàng)建變量time1,數(shù)據(jù)類型為“有符號32位數(shù)”, 調(diào)整格式為“l(fā)ongtosigneddword”。選擇對應plc變量的地址db1,dd0。此時的變量單位為毫秒,為了使該變量對應單位為分鐘,設置相應線性轉(zhuǎn)換參數(shù),如下圖所示:
圖 1.2.2
(3) 在wincc畫面中創(chuàng)建用于訪問該變量的i/o域,設置如下圖所示:
圖 1.2.3
(4) 運行效果如下圖所示:
圖 1.2.4
(5) 如果需要在wincc項目中以浮點數(shù)格式來監(jiān)控plc中的time類型變量,則在創(chuàng)建wincc變量時應選擇“浮點數(shù)32位ieee754”,調(diào)整格式為“floattosigneddword”, 選擇對應plc變量的地址db1.dd0。具體設置如下圖所示:
圖 1.2.5
在wincc畫面中創(chuàng)建用于訪問該變量的i/o域,設置如下圖所示:
圖 1.2.6
運行效果如下圖所示:
圖 1.2.7
2. 在wincc項目中監(jiān)控300/400plc中的s5time類型變量
2.1 關(guān)于s5time數(shù)據(jù)類型
s5time為無符號16位s5時間數(shù)據(jù)類型,由3位bcd碼時間值(0-999)和時基組成,如下圖所示:
圖 2.1.1
時間基準定義將時間值遞減一個單位所用的時間間隔。最小的時間基準是10毫秒;最大的時間基準是10秒。如下表所示:
用于s5time的通用格式對范圍和分辨率的限制如下:
2.2 具體步驟
(1) 在step中創(chuàng)建plc站的db1,并在db中創(chuàng)建s5time類型的變量st,如下圖所示:
圖 2.2.1
(2) 在wincc項目中創(chuàng)建變量s5time,數(shù)據(jù)類型為“無符號32位數(shù)”, 調(diào)整格式為“dwordtosimaticbcdtimer”。選擇對應plc變量的地址db1,dw4。此時的變量單位為毫秒,為了使該變量對應單位為秒,設置相應線性轉(zhuǎn)換參數(shù),如下圖所示:
圖 2.2.2
(3) 在wincc畫面中創(chuàng)建用于訪問該變量的i/o域,設置如下圖所示:
圖 2.2.3
(4) 運行效果:
圖 2.2.4
(5) 如果需要在wincc項目中以浮點數(shù)格式來監(jiān)控plc中的s5time類型變量,則在創(chuàng)建wincc變量時應選擇“浮點數(shù)32位ieee754”,調(diào)整格式為“floattosimaticbcdtimer”, 選擇對應plc變量的地址db1,dw4。具體設置如下圖所示:
圖 2.2.5
在wincc畫面中創(chuàng)建用于訪問該變量的i/o域,設置如下圖所示:
圖 2.2.6
運行效果為:
圖 2.2.7
2.3定時器的監(jiān)控
s7 300/400 plc為定時器保留了一片存儲區(qū)域。每個定時器由一個16位的字和一個二進制位組成,定時器的字使用的是s5time類型,用來存放當前的定時時間值,定時器的位狀態(tài)用于存放觸點的狀態(tài)。
用定時器地址(t和定時器號,例如t10)存取它的時間值和定時器位,plc中使用帶位操作數(shù)的指令存取定時器位,使用帶字操作數(shù)的指令存取定時器的時間值。在wincc中我們可以定義變量來監(jiān)控定時器的當前值,其方法同監(jiān)控s5time類型變量相同:
圖 2.3.1
3.在wincc項目中監(jiān)控s7 300/400 plc中的計數(shù)器值
3.1 關(guān)于計數(shù)器
s7 300/400 plc為計數(shù)器保留了一片存儲區(qū)域。每個計數(shù)器由一個16位的字和一個二進制位組成,計數(shù)器的字用來存放它當前的計數(shù)值,計數(shù)器的位狀態(tài)用于存放觸點的狀態(tài)。
用計數(shù)器地址(c和計數(shù)器號,例如c10)存取當前的計數(shù)值和計數(shù)器位,plc中使用帶位操作數(shù)的指令存取計數(shù)器位,使用帶字操作數(shù)的指令存取計數(shù)器的計數(shù)值。在wincc中我們可以定義變量來監(jiān)控計數(shù)器的當前值。
計數(shù)字的0-11位是計數(shù)值的bcd碼,計數(shù)值的范圍為0-999。二進制格式的計數(shù)值只占用計數(shù)器值的0-9位,如下圖所示:
圖?。?1.1
3.2 具體步驟
(1) 在wincc項目中創(chuàng)建變量counter1,數(shù)據(jù)類型為“無符號16位數(shù)”, 調(diào)整 格式為“wordtosimaticbcdcounter”, 選擇對應plc變量的地址c8(顯示為z8)。如下圖所示:
圖?。?2.1
(2) 在wincc畫面中創(chuàng)建用于訪問該變量的i/o域,設置如下圖所示:
圖?。?2.2
(3) 運行效果:
圖?。?2.3