目录

OPC简介

PLC与Matlab之间的OPC通讯

S7-PC Access SMART配置

Matlab配置

组态王与matlab之间的OPC通讯


OPC简介

OPC是一种利用微软COM/DCOM技术达成自动控制的协议,采用典型的CIS模式,针对硬件设备的驱动程序由硬件厂商完成提供统OPC接口标准的Server程序。软件厂商只需按照OPC标准接口编写CLient程序访问硬件厂商提供的Serve程序进行读写,即可实现与硬件设备的通信。

PLC与Matlab之间的OPC通讯

S7-PC Access SMART配置

S7-200 PC Access SMART是西门子基于200smart PLC之后,推出的一款读取200smart PLC数据的上位机OPC软件

新建一个PLC程序并保存下载到PLC。

打开S7 -200 PC Access Smart,将PLC程序变量上传到OPC服务器。

文件——导入符号——选择保存到本地的.smart格式的文件

右键新加入的项目——属性——选择PLCcpu地址以添加PLC——确认

可以在右侧看到已写在PLC里面的条目  

这里有个很明显的错误 S7-200 PC Access SMART V2.3版本支持中文的group和item  但是在这里使用中文会导致后面Matlab建立opc连接后add-item时会出现ChangeBrowsePosition failed browsing down to的错误提示。

选择条目添加到测试客户端

点击查看客户端状态查询连接信号质量

Matlab配置

Matlab7.0以上版本中集成了 OPC工具箱 (OPC Toolbox),它是一个客户端软件,提供了一种服务器和客户端互访的通用机制,应用于OPC客户端数据访问,通过OPC工具箱不需了解 0PC服务器的内部配置和具体操作,就能连接任何一个 OPC服务器。组态软件可以作为 OPC服务器与作为 0PC客户端的 MATLAB相连接,为其提供读写组态软件内部数据的功能

在Matlab中下载OPC Toolbox,并通过在命令行窗口中输入指令完成核心组件的安装

opcregister('install')

输入

opctool

建立连接
在localhost/S7200SMART.OPCServer 下右击选择Add Group(添加组)

添加条目(200 smart OPC服务器的变量条目)
Group右击添加Item

完成后保存

在simulink中建立opc客户端

从库浏览器中选中——Industrial Communication Toolbox——OPC Configuration   配置如下

启动仿真 运行时间设置为inf 从示波器观察数据传输

组态王与matlab之间的OPC通讯

首先在组态王里面新建一个工程,找到“设备”——“”OPC服务器

新建OPC服务器,网络节点名由于不能使用默认的本机名称,建议不懂就照着下图输入\\loaclhost,选中左侧KingView.View.1,其他照默认配置

添加变量名。先在“数据库”——“数据词典”中添加变量

变量名可以任意取,但是变量类型必须是“I/O型”,连接设备需要选中第一步设置的服务器名(一般为KingView.View.1)。

千万注意!!!需要组态王和matlab通讯的变量,必须选为“I/O型”!!!

寄存器可以任意选择,但是建议可以另外建立变量类型为“内存”型的变量,作为寄存器。也即,先建立一个“内存”类型的变量,然后重启组态王程序,再建立对应的I/O变量,在寄存器中选中刚刚建立的“内存”类型的变量。

采样频率按照需要选择。

在Matlab中的操作如上节所示

不同的是在simulink—OPC Configuration模块中,点击上方的“Configure OPC Clients”,在弹出界面上点击“Add”,输入Host名称为之前设置的“网络节点名”(对应"\\loaclhost"这里填"loaclhost")。再点击“Select”点选服务器名称(KingView.View.1即是组态王OPC服务器)

配置OPC Read(读OPC服务器上变量)、OPC Write(写OPC服务器上变量)

需要注意的是!!!

Matlab里面无法显示组态王OPC服务器内的变量名列表,但是不代表无法读写对应的I/O变量

如上图所示,添加“Item IDs”就是添加对组态王OPC服务器内的指定I/O型变量的操作。在点击“Add Items”后弹出的界面里面“Enter Item ID(s)”输入之前在组态王里面的“数据词典”里添加的I/O型变量的名字,在加上.Value。注意大小写和标点符号 (上图示例,组态王里面的“数据词典”里添加的I/O型变量的名字为“a”)
 

自学手册 很多借鉴

参考文章:

Matlab和PLC的OPC通讯_matlab中没有opc插件-CSDN博客

Smart 200PLC PC Access SMART OPC通信_RXXW_Dor的博客-CSDN博客

matlab与组态王OPC连接-CSDN博客

matlab与组态王通讯——OPC通讯_组态王寄存器怎么选-CSDN博客

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐