4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
OPCServer Modbus使用和配置
来自 : www.bbsmax.com/A/A2dmNjjB... 发布时间:2021-03-24

一,安装KEPware.Enhanced.OPC.DDE.KEPServer。(PLC数据传送给KEPServer,开发的程序用OPCServer读KEPServer)

设置ip地址后面是指的plc站号,此处必须和plc上站号对应。否则无法接收数据。

打开quick client 查看传值情况

二.C#程序代码

引用opcdaauto.dll

在win7 64位下KepServer = new OPCServer()会出错的问题,

检索COM 类工厂中 CLSID 为 28e68f9a-8d75-11d1-8dc3-3c302a000000 的组件时失败,原因是出现以下错误: 80040154

1.一定要到C:\\Windows\\SysWOW64路径下打开cmd.exe运行命令文件(而不是在运行打开),注册 OPCDAAuto.dll 输入命令: REGSVR32 OPCDAAuto.dll;即可

2.编译工具目标要选择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/NG
private OPCItem item1, item2, item3; public Form2()
{
InitializeComponent();
#region OPC Server
private 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个线程用于读取数据
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 = ;
KepGroup.IsActive = true;
KepGroup.IsSubscribed = true;
//当KepGroup中数据发生改变的触发事件
KepGroup.DataChange += new DIOPCGroupEvent_DataChangeEventHandler(KepGroup_DataChange);
KepItems = KepGroup.OPCItems;
item1 = KepItems.AddItem(\"Channel1.Device1.A01\", );
item2 = KepItems.AddItem(\"Channel1.Device1.A02\", );
item3 = KepItems.AddItem(\"Channel1.Device1.A03\", ); //当数据改变时触发的事件
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 = ; i = NumItems; i++)
{
if (ClientHandles.GetValue(i).Equals())
{
str = \"A01:\" + ItemValues.GetValue(i).ToString();
if (ClientHandles.GetValue(i).Equals())
{
str = \"A02:\" + ItemValues.GetValue(i).ToString();
if (ClientHandles.GetValue(i).Equals())
{
str = \"A03:\" + ItemValues.GetValue(i).ToString(); BeginInvoke(show1, new string[] { str });
public void ShowMessage(string str)
richTextBox1.AppendText(str+\",\"); #endregion private void Form2_Load(object sender, EventArgs e)
{
KepServerLoad();
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
KepServer.Disconnect();
}
}

本文链接: http://opcla.immuno-online.com/view-686212.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
其他
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://