opc读取opc服务器的数据,多个变量的

qq_23993015 2016-06-20 03:30:30
用c#语言写的,只要有理都会给分
opc读取opc服务器的数据,多个变量的
方法用的是,参考的是这里的方法
http://www.cnblogs.com/punkrocker/archive/2012/09/01/2666307.html
这个里的方法,哪位大神加我下
KepGroup_DataChange里只能返回最后一个参数的值
//点开始按钮,将变量名传入 调用获取变量的方法 这个方法应该是错的 只能获取最后一个,求大神指导和修改,给个代码和自己的理解
private void btnStart_Click(object sender, EventArgs e)
{
this.btnStart.Text = "结束";
List<string> getValue=new List<string>();
foreach (string item in ConfigForm.selectarr)
{
OpcAuto.Default.ReadParamValue(item);
}
}
///<summary>
///获取变量的值
///</summary>
public void ReadParamValue(string param)
{
try
{
if (itmHandleClient != 0)
{
Array Errors;
OPCItem bItem = KepItems.GetOPCItem(itmHandleServer);
int[] temp = new int[2] { 0, bItem.ServerHandle };
Array serverHandle = (Array)temp;
//移除上一次的变量
KepItems.Remove(KepItems.Count, ref serverHandle, out Errors);
}
itmHandleClient = 1234;
KepItem = KepItems.AddItem(param, itmHandleClient);
itmHandleServer = KepItem.ServerHandle;
txtName = param.Split('.')[2];
}
catch(Exception err)
{
//没有任何权限的项,都是OPC服务器保留的系统项,此处可不做处理。
itmHandleClient = 0;
MessageBox.Show("此项为系统保留项:" + err.Message, "提示信息");
}
}
/// <summary>
/// 每当项数据有变化时执行的事件
/// </summary>
/// <param name="TransactionID">处理ID</param>
/// <param name="NumItems">项个数</param>
/// <param name="ClientHandles">项客户端句柄</param>
/// <param name="ItemValues">TAG值</param>
/// <param name="Qualities">品质</param>
/// <param name="TimeStamps">时间戳</param>
void KepGroup_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)
{
//为了测试,所以加了控制台的输出,来查看事物ID号
//Console.WriteLine("********"+TransactionID.ToString()+"*********");
for (int i = 1; i <= NumItems; i++)
{

MessageBox.Show("值是" + ItemValues.GetValue(i).ToString());
//MainForm
try
{
MainForm.ActiveForm.Controls["txt" + txtName].Text = ItemValues.GetValue(i).ToString();
}
catch (Exception err) { MessageBox.Show(err.ToString()); }
//this.txtTagValue.Text = ItemValues.GetValue(i).ToString();
//this.txtQualities.Text = Qualities.GetValue(i).ToString();
//this.txtTimeStamps.Text = TimeStamps.GetValue(i).ToString();
}
}
...全文
1036 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyongchao880622 2016-12-05
  • 打赏
  • 举报
回复
这是opc 的下载地址 http://download.csdn.net/detail/wangyongchao880622/9554683 里面有关于opc的类库 和 类 可以实用。反正我用的挺好的。
wangyongchao880622 2016-06-20
  • 打赏
  • 举报
回复
我这有读写opc的类。。。如果要的话就加我...276081678
wangyongchao880622 2016-06-20
  • 打赏
  • 举报
回复
请问你是在北京给汽车部件公司做吗?

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧