欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

300PLC通訊怎么實(shí)現(xiàn)

300PLC通訊怎么實(shí)現(xiàn)?

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