色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

300PLC通訊怎么實現

錢多多2年前12瀏覽0評論

300PLC通訊怎么實現?

可利用OPC服務器來完成,比較方便。可適用于各類PLC。 下面以西門子PLC為例說下實現方法: 一、通過STEP7軟件建立一個新項目OPC,在項目中添加SIMATIC300站和一個PC站,其中PLC站中第四個槽安裝的CP343模塊。PC站的第一個槽為OPCSERVER,第三個槽為IEGENERAL,然后在NETPRO下配置PLC和PC站的網絡連接:(注意:是在PC站上新建的網絡連接,連接類型選的S7連接) 二、通過stationconfigurator軟件配置本機的PC站(要和STEP7中配置的相同),然后把PLC和PC站都下載下去(注意:下載PC站的時候要把S7ONLINE(STEP7)--->;PCinternal(local))。 三、打開OPCScout,(Start>;SIMATIC>;SIMATICNet>;OPCScout),雙擊“OPC SimaticNet”在隨之彈出的“ADDGroup”對話框中輸入組名,本例命名為“OPC”。 點擊OK確認; ;雙擊已添加的連接組(OPC),即彈出“OPCNavigator”對話框,此窗口中顯示 所有的連接協議。雙擊“S7”,在PCStation組態NetPro中所建的連接名會被顯示(S7 Connection_1)。雙擊此連接,即可出現有可能被訪問的對象樹(objectstree),在PLC CPU中已存在的DB塊也會出現 以上完成的OPCSERVER部分的配置。 四、用VB編寫了OPC客戶端應用程序。主要程序代碼如下: 在VB中引在VB中還要引用siemensopcdaautomation2.0 (1)連接OPC服務器 DimWithEventsMyOPCServerAsOPCServer‘定義服務器對象變量MyOPCServer DimWithEventsMyOPCGroupAsOPCGroup‘定義OPC組對象變量MyOPCGroup SetMyOPCServer=NewOPCServer MyOPCServer.Connect"OPC.SimaticNET"‘連接SIMATICNET的OPC服務器 (2)添加OPC組對象 SetMyOPCGroup=MyOPCServer.OPCGroups.Add("Group1") ‘添加OPC組對象 MyOPCGroup.IsSubscribed=True ‘設置該組數據為后臺刷新 MyOPCGroup.IsActive=True ‘設置該組為激活狀態 MyOPCGroup.UpdateRate=1000 ‘設置數據刷新時間為1000 (3)添加數據項 DimabItemIDs()AsString ‘項標識符 DimabClientHandles()AsLong ‘客戶端句柄 DimabServerHandles()AsLong ‘服務器端句柄 DimabErrors()AsLong DimiAsLong ItemCount=3 abItemIDs(1)="S7:【S7connection_1】IB1" abItemIDs(2)="S7:【S7connection_1】MB1" abItemIDs(3)="S7:【S7connection_1】QB1" fori=1to3 abClientHandles(i)=i ‘給客戶端句柄賦值 Next MyOPCGroup.OPCItems.AddItemsItemCount,abItemIDs,abClientHandles,abServerHandles,abErrors ‘添加數據項操作 (4)同步數據讀寫 OPC數據存取有同步方式和異步方式兩種。異步讀寫數據復雜,需要與事件結合使用,與同步相比速度慢但準確性高。同步讀寫數據簡單,直接使用OPCItem的方法即可。 DimOneAsOPCItem DimIndexAsLong ‘Index為標簽順序號 DimOneReadAsString DimXieAsString SetOne=MyOPCGroup.OPCItems(Index) One.ReadOPCCache OneRead=One.Value ‘讀數據 MyOPCGroup.SyncWriteItemCount,ServerHandles,valuess,Errors ‘同步寫數據 MyOPCGroup.SyncReadOPCCache,ItemCount,ServerHandles,ReadValue,Errors ‘同步讀數據 One.Write(Xie) ‘寫數據 若只讀取數據,可以使用DataChange事件,當控制器中所要訪問的數據一旦發生改變時將會觸發該事件,并將該數據自動讀到TxtValue文本框。 PrivateSubMyOPCGroup_DataChange(ByValTransactionIDAsLong,ByValNumItemsAsLong,ClientHandles()AsLong,ItemValues()AsVariant,Qualities()AsLong,TimeStamps()AsDate) ‘自動刷新數據 DimiAsLong Fori=1ToNumItems txtValue(ClientHandles(i))=ItemValues(i) ‘獲取項的值 txtTime(ClientHandles(i))=TimeStamps(i) ‘獲取項的時間戳 txtQuantity(ClientHandles(i))=GetQualityString(Qualities(i)) ‘獲取項的品質 Nexti EndSub (5)斷開OPC服務器 MyOPCServer.OPCGroups.RemoveAll ‘移除所有OPCGroup,空出資源 SetMyOPCGroup=Nothing MyOPCServer.Disconnect ‘斷開連接