如何在WinCC中通過變量質量檢測通訊狀態


什么是質量代碼 

WinCC中外部變量通訊時,除了傳送變量值,還會有一個字節的質量代碼,質量代碼指示了當前變量的質量狀態,通過變量的質量代碼可以判斷通訊是否正常。

 

質量代碼的結構

質量代碼具有如下的二進制結構:
QQSSSSLL
Q: 質量
S: 質量的子狀態
L: 限制。 該數值是可選的。

通過前兩位可確定變量的質量,后面六位可得到變量的具體狀態。當前兩位全為0時表示質量為“劣”,詳細如下:

 

Q

Q

S

S

S

S

L

L

 

27

26

25

24

23

22

21

20

劣 - 數值沒有用。

0

0

-

-

-

-

-

-

不確定 - 數值的質量低於普通情況,但是數值可能仍然有用。

0

1

-

-

-

-

-

-

優(非層疊)- 數值的質量是優的。 可能的報警條件會通過子狀態指示。

1

0

-

-

-

-

-

-

優(層疊)- 數值可能用在控件中。

1

1

-

-

-

-

-

-

更具體的質量代碼可查閱WinCC手冊:https://support.industry.siemens.com/cs/mdm/109773067?c=102861150219&lc=zh-CN

 

用VB腳本檢測變量質量

當變量質量代碼為“劣”時返回True,為其他質量代碼時返回False。給TagQcIsBad()函數傳遞一個變量名,通過該變量判斷是否通訊成功。

Function TagQcIsBad(sTag)
    Dim oTag
    Set oTag = HMIRuntime.Tags(sTag)
    oTag.Read
    TagQcIsBad = ((oTag.QualityCode AND &HC0) = &H00) '如果前兩位全為0表示質量為“劣”,返回True
End Function

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM