日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OPCServer Modbus使用和配置

發(fā)布時(shí)間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OPCServer Modbus使用和配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,安裝KEPware.Enhanced.OPC.DDE.KEPServer。(PLC數(shù)據(jù)傳送給KEPServer,開發(fā)的程序用OPCServer讀KEPServer)

?????

???

?

??? 設(shè)置ip地址后面是指的plc站號(hào),此處必須和plc上站號(hào)對(duì)應(yīng)。否則無(wú)法接收數(shù)據(jù)。

???

????? 打開quick client 查看傳值情況

?????

二.C#程序代碼

???引用opcdaauto.dll

?? 在win7 64位下KepServer = new OPCServer()會(huì)出錯(cuò)的問題,

?? 檢索COM 類工廠中 CLSID 為 <28e68f9a-8d75-11d1-8dc3-3c302a000000> 的組件時(shí)失敗,原因是出現(xiàn)以下錯(cuò)誤: 80040154

? 1.一定要到C:\Windows\SysWOW64路徑下打開cmd.exe運(yùn)行命令文件(而不是在運(yùn)行打開),注冊(cè)“OPCDAAuto.dll” 輸入命令: REGSVR32 OPCDAAuto.dll;即可

? 2.編譯工具目標(biāo)要選擇x86

?? KepServer.Connect("KEPware.KEPServerEx.V4", "127.0.0.1");? 此處ip地址是安裝KEPware.Enhanced.OPC.DDE.KEPServer電腦的ip地址.

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OPCAutomation; using System.Threading;namespace SPCTest {public partial class Form2 : Form{private OPCServer KepServer;private OPCGroups KepGroups;private OPCGroup KepGroup;private OPCItems KepItems;//軸承凈重,注脂量,防塵蓋壓入深度,防塵蓋平整度 壓入OK/NGprivate OPCItem item1, item2, item3;public Form2(){InitializeComponent();}#region OPC Serverprivate void KepServerLoad(){try{KepServer = new OPCServer();KepServer.Connect("KEPware.KEPServerEx.V4", "127.0.0.1");if (KepServer.ServerState == (int)OPCServerState.OPCRunning){// statusLabelConnectInfo.Text = "OPC Server連接成功"; }else{// statusLabelConnectInfo.Text = "OPC Server連接失敗";return;}}catch (Exception ex){// statusLabelConnectInfo.Text = "OPC Server連接失敗," + ex.Message;return;}KepGroups = KepServer.OPCGroups;Thread t1; // 開1個(gè)線程用于讀取數(shù)據(jù) t1 = new Thread(new ThreadStart(KepProcess));t1.Start();}public void KepProcess(){//KepGroup = KepGroups.Add("Channel.Device.Group");KepGroup = KepGroups.Add("Channel1.Device1.Group");KepGroup.UpdateRate = 250;KepGroup.IsActive = true;KepGroup.IsSubscribed = true;//當(dāng)KepGroup中數(shù)據(jù)發(fā)生改變的觸發(fā)事件 KepGroup.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(KepGroup_DataChange);KepItems = KepGroup.OPCItems;item1 = KepItems.AddItem("Channel1.Device1.A01", 1);item2 = KepItems.AddItem("Channel1.Device1.A02", 2);item3 = KepItems.AddItem("Channel1.Device1.A03", 3);}//當(dāng)數(shù)據(jù)改變時(shí)觸發(fā)的事件 public delegate void DelegateShowMessage(string str);public void KepGroup_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps){string str = "";DelegateShowMessage show1 = new DelegateShowMessage(ShowMessage);for (int i = 1; i <= NumItems; i++){if (ClientHandles.GetValue(i).Equals(1)){str = "A01:" + ItemValues.GetValue(i).ToString();}if (ClientHandles.GetValue(i).Equals(2)){str = "A02:" + ItemValues.GetValue(i).ToString();}if (ClientHandles.GetValue(i).Equals(3)){str = "A03:" + ItemValues.GetValue(i).ToString();}BeginInvoke(show1, new string[] { str });}}public void ShowMessage(string str){richTextBox1.AppendText(str+",");}#endregionprivate void Form2_Load(object sender, EventArgs e){KepServerLoad();}private void Form2_FormClosing(object sender, FormClosingEventArgs e){KepServer.Disconnect();}} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/ike_li/p/5468658.html

總結(jié)

以上是生活随笔為你收集整理的OPCServer Modbus使用和配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。