編程通過OPC方式實現PC機與西門子PLC通訊
在上一次發表的<運用VC#編程通過OPC方式實現PC機與西門子PLC通訊>主要講的是同步通訊,本文將主要講解如何編程實現異步通訊,通過講解你也將會知道同步通訊與異步通訊的區別,以及在什么情況下使用異步通訊。
1、 配置OPC服務器
對于服務器的配置與同步通訊的配置一樣,這里不需再講解,若有不清楚的,可以參閱之前發布的<運用VC#編程通過OPC方式實現PC機與西門子PLC通訊>
2、 OPC編程
變量組、項的命名規則與同步通訊的一樣,這里不再描敘,下面主要就開發一個異步通訊類 AsynServer來講解如何編程。
<2>、編程
異步編程的原理就是在OPC服務器那邊檢測當前活動的變量組,一但檢測到某一個變量,譬如變量Q0.0從1變成0,就會執行一個回調函數,以實現針對變量發生變化時需要實現的動作,在這里可以采用委托來實現該功能。
上周,客戶反映當WinCC集成到STEP7中做變量上傳時,發生了很詭異的事情:當選擇DB塊中的Operator Control and Monitoring選項時,對鉤出現后瞬間消失?!如下圖所示(僅示意)。
一開始真心不相信。眼見為實,客戶發來了項目,果真如此。進一步檢測,發現該DB為FB背景數據塊,找到相關FB,做了如下測試:
1. 項目中其它的FB和DB塊沒有問題
2. 新創建的FB和DB塊沒有問題
3. 使用Reorganize進行項目重組無效
4. 創建新項目,拷貝原項目中的問題FB和DB塊無效
由此,推斷問題出現在該FB中,打開FB,也未發現異常。如下圖所示。
事到如今,只能采取笨方法 —— 排除法了。
1. 將問題FB復制,刪除所有Network程序
編譯存盤后,重新生成DB,設置監控屬性無效。推斷問題出現在Interface的接口參數中。
2. 刪除Interface中所有WinCC監控變量(標記為綠色三角)
編譯存盤后,重新生成DB,設置監控屬性有效。推斷問題出現在Interface中的WinCC監控變量中。
3. 逐一取消Interface中WinCC監控變量的S7_m_c屬性,如下圖所示
發現問題所在!Interface中定義的輸入參數的結構變量CONTROL.MANUAL_AUTO_CHAIN的S7_m_c屬性被取消后,DB設置監控屬性有效!
經過反復測試,FB中定義的結構變量超過24個字符,即可產生先前描述的詭異現象。刪除多余的字符(CONTROL.MANUAL_AUTO_CHAIN-> CONTROL.MANUAL_AUTO_CHAI),問題解決,如下圖所示。
在STEP7幫助中未發現對于變量名稱長度有24個字符的限制,而在WinCC中,變量定義RAWTAG時有24個字符的限制,可能和此有關。
DB中的結構變量名稱定義過長,雖然是小概率事件,但也給了我們一個很好的參考。
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。