基于OPC UA客户端上位机编写应用心得分享

基于OPC UA客户端上位机编写使用自动化接口进行OPCDA的客户端编写,但是OPCDA是基于COM/DCOM的技术,如果服务器与客户端不在同一台电脑上配置较为复杂;基于COM/DCOM的技术有着不可根除的缺点,因此随着技术的进步, … ,电工学习网

西门子S7-1500存储卡的挑选和应用

在学习培训西门子系统的全过程中,系统不一样采用的存储卡也不一样,以前对每一个系统的存储卡有什么区别开展了简易的详细介绍以后,也慢慢的把300、400、1200的存储卡的应用开展了逐一详细介绍。今日大家而言一下最后一个1500存储卡的应用 … ,电工学习网

 根据opc UA手机客户端上位机软件撰写

应用自动化技术插口开展OPCDA的手机客户端撰写,可是OPCDA是根据COM/DCOM的技术性,假如网络服务器与手机客户端没有同一台电脑配备比较繁杂;根据COM/DCOM的技术性拥有不能彻底消除的缺陷,因而伴随着技术性的发展,及其数据传输各层面要求的提升,OPC慈善基金会在2008年公布了新的标准:OPC UA。OPC UA标准不会再是根据COM/DCOM技术性,因而OPC UA不但能在Windows平台上完成,更能够 在Linux,及其别的的内嵌式服务平台中完成。

与传统式OPC标准同样,OPC UA一样拥有同样的设计方案总体目标:

1.作用等额的:全部的根据COM的OPC标准中的作用,都投射到OPC UA中。

2. 多服务平台适用:适用从内嵌式的微处理器到根据云的分散型操纵构架。

3.安全性:数据加密,互相访问验证及其安全性监视作用。

4.扩展性:不危害目前应用软件的状况下,就可以加上新的作用。

5.丰富多彩的信息内容模型:可定义繁杂的信息内容,而不会再是单一的数据信息。

OPCUA服务器的配置

此次OPCUA网络服务器仍然应用KEPServerEX 6,配备以下:

1、在拖盘寻找KEPServerEX 6图标,鼠标右键弹出来莱单,点一下OPCUA配备

基于OPC UA客户端上位机编写应用心得分享插图

2、在弹出来的配备页面开展如下图的配备:

基于OPC UA客户端上位机编写应用心得分享插图(1)

3、开启KEPServerEX 6主界面,鼠标右键点一下新项目,挑选特性,开展配备以下,即进行OPCUA服务器的配置;

基于OPC UA客户端上位机编写应用心得分享插图(2)

03

手机软件撰写

1、手机软件完成连接点访问 ,加上定阅,清除定阅,清除定阅的作用,演试页面以下:

基于OPC UA客户端上位机编写应用心得分享插图(3)

2、此次编码完成关键根据OPC UA的全新官方网库二次封裝的一个类库:OpcUaHelper.dll,开源系统详细地址:
https://github.com/dathlin/OpcUaHelper;准备好开发设计的IDE,新建项目。留意:新项目的.NET Framework版本号最少为4.6。开启NuGet管理工具,引入OpcUaHelper;

基于OPC UA客户端上位机编写应用心得分享插图(4)

3、编码撰写:

<1> 创建联接

private void button1_Click(object sender, EventArgs e)

{

opcUaClient.UserIdentity = new UserIdentity(new AnonymousIdentityToken());

opcUaClient.ConnectServer(textBox1.Text);

PopulateBranch(ObjectIds.ObjectsFolder, treeView1.Nodes);

}

<2>连接点访问

private async void PopulateBranch(NodeId sourceId, TreeNodeCollection nodes)

{

odes.Clear();

nodes.Add(new TreeNode(“Browsering…”));

// fetch references from the server.

TreeNode[] listNode = await Task.Run(() =>

{

ReferenceDescriptionCollection references = GetReferenceDescriptionCollection(sourceId);

List<TreeNode> list = new List<TreeNode>();

if (references != null)

{

// process results.

for (int ii = 0; ii < references.Count; ii )

{

ReferenceDescription target = references[ii];

TreeNode child = new TreeNode(Utils.Format(“{0}”, target));

child.Tag = target;

child.Nodes.Add(new TreeNode());

list.Add(child);

}

}

return list.ToArray();

});

西门子PLCS7-200 CP243-1做为手机客户端与S7-200 SMART CPU以太网接口通信

西门子S7-200 CP243-1作为客户端与S7-200 SMART CPU以太网通讯

S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。S7-200 通过CP243-1与S7-200 SMART PLC 之间的S7通信也是可以成功的,但是需要S7-200侧作为客户端组态以 … ,电工学习网

S7通讯是S5系列PLC根据MPI、PROFIBUS、ETHERNET互联网的一种提升的通讯协议,关键用以S7-300/400PLC中间的通讯。S7-200 根据CP243-1与S7-200 SMART PLC 中间的S7通讯也是能够 取得成功的,可是必须S7-200侧做为手机客户端组态软件以 … ,电工学习网

//升级表明的特性

// DisplayAttributes(sourceId);

nodes.Clear();

nodes.AddRange(listNode.ToArray());

}

private ReferenceDescriptionCollection GetReferenceDescriptionCollection(NodeId sourceId)

{

//TaskCompletionSource<ReferenceDescriptionCollection> task = new TaskCompletionSource<ReferenceDescriptionCollection>();

// 寻找全部部件的连接点

BrowseDescription nodeToBrowse1 = new BrowseDescription();

nodeToBrowse1.NodeId = sourceId;

nodeToBrowse1.BrowseDirection = BrowseDirection.Forward;

nodeToBrowse1.ReferenceTypeId = ReferenceTypeIds.Aggregates;

nodeToBrowse1.IncludeSubtypes = true;

nodeToBrowse1.NodeClassMask = (uint)(NodeClass.Object | NodeClass.Variable | NodeClass.Method | NodeClass.ReferenceType | NodeClass.ObjectType | NodeClass.View | NodeClass.VariableType | NodeClass.DataType);

nodeToBrowse1.ResultMask = (uint)BrowseResultMask.All;

// 寻找全部连接点机构的连接点.

BrowseDescription nodeToBrowse2 = new BrowseDescription();

nodeToBrowse2.NodeId = sourceId;

nodeToBrowse2.BrowseDirection = BrowseDirection.Forward;

nodeToBrowse2.ReferenceTypeId = ReferenceTypeIds.Organizes;

nodeToBrowse2.IncludeSubtypes = true;

nodeToBrowse2.NodeClassMask = (uint)(NodeClass.Object | NodeClass.Variable | NodeClass.Method | NodeClass.View | NodeClass.ReferenceType | NodeClass.ObjectType | NodeClass.VariableType | NodeClass.DataType);

nodeToBrowse2.ResultMask = (uint)BrowseResultMask.All;

BrowseDescriptionCollection nodesToBrowse = new BrowseDescriptionCollection();

nodesToBrowse.Add(nodeToBrowse1);

nodesToBrowse.Add(nodeToBrowse2);

// 从服务器获得引入

ReferenceDescriptionCollection references = FormUtils.Browse(opcUaClient.Session, nodesToBrowse, false);

return references;

}

private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)

{

try

{

// check if node has already been expanded once.

if (e.Node.Nodes.Count != 1)

{

return;

}

if (e.Node.Nodes.Count > 0)

{

if (e.Node.Nodes[0].Text != String.Empty)

{

return;

}

}

// get the source for the node.获得的源连接点

ReferenceDescription reference = e.Node.Tag as ReferenceDescription;

if (reference == null || reference.NodeId.IsAbsolute)

{

e.Cancel = true;

return;

}

// populate children.

PopulateBranch((NodeId)reference.NodeId, e.Node.Nodes);

}

catch (Exception exception)

{

ClientUtils.HandleException(this.Text, exception);

}

}

西门子PLCCP243-1做为手机客户端与S7-300PLC开展以太网接口通信

S7-200 PLC本身沒有以太网接口口,必须根据以太网接口控制模块CP243-1来拓展以太网接口通讯,且一个S7-200PLC只有拓展一个CP243-1。CP243-1并不是1394连接控制模块,必须根据别的方法对S7-200下载一个包括以太网接口指导的新项目文档才能够 应用。 … ,电工学习网

作者: 791650988

为您推荐

联系我们

联系我们

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部