Matlab NX MCD联合仿真 OPCDA通讯

所用到的软件
OPC服务器:MatrikonOPCExplorer
Matlab2021b
NX1965
注:本文只是记录一下如何成功连接,对OPC、Matlab、NX MCD无详细的介绍,若想更详细的了解,可参考其他博客

最后实现的效果是Matlab simulink和MCD中数据可以实时显示,包括Matlab给MCD一个信号,MCD给Matlab一个信号。

更新(2022.6.5)
1.MatrikonOPCExplorer 这个OPC服务器并不是那么好下载,并且在安装过程中会提示.NET Frmaework 3.5 Features cannot be installed on this operating system。 我将OPC服务器上传到资源,安装过程提示的问题,可以百度自行解决,非常简单,不再赘述。
2.关于simulink中OPC读和写这两个模块,
WRITE 写 这意思应该是OPC读到了matlab中的数据,然后写下来了,写在了OPC服务器端
READ 读 这意思应该是OPC里面有什么,matlab从里面读出来。

第一步:下载MatrikonOPCExplorer

下载成功以后,进行安装,一直点next就行。安装完成之后,打开MatrikonOPC Server for Simulation,右键Alias Configuration,新建一个Group。
在这里插入图片描述
新建之后,将会出现一个New Alias 1 组,建议不用改名称,默认这个就好。
然后在右侧添加数据,双击Name下面的单元格即可。包括名称和其类型的设置。我设置一个a和b,a是matlab给MCD的,b是MCD给matlab的,类型都选择双精度。

在这里插入图片描述
数据添加完成之后,如上图所示,然后点击红色框中的菜单,等待出现以下界面即可。按照步骤将a和b分别加入。
在这里插入图片描述
出现以下界面,那么OPC服务器这边即设置完成,接下来将介绍matlab和opc建立通讯。
在这里插入图片描述

第二步:Matlab和OPC通讯

1、程序段

da = opcda('localhost','Matrikon.OPC.Simulation.1');%选择本地端 和OPC服务器建立通讯
connect(da); %连接
grp = addgroup(da);%添加组,一个组里面可以有多个对象。
item1 = additem(grp,'New Alias 1.a');%添加组里面的项,上文中说默认用New Alias 1,此处的代码一直是这样就行
item2 = additem(grp,'New Alias 1.b');%如果你更改了组的名字,在这里修改成你自己的就可以了。

直接运行上述代码,现在工作区中产生这些设置的变量,后续在simulink中用到。
2、simulink中搭建
在这里插入图片描述
常用这三个,一个OPC配置,一个读,一个写。将这三个都拖进来,然后我用了一个constant模块,Matlab给MCD发一个常量,然后用了一个scope,用来显示MCD给Matlab的数值,连接到读的V端口。
simulink模型
第一步先配置OPC Config
在这里插入图片描述
第二步,配置读和写的模块。
示意读模块的步骤,写是一样的。读的时候只读的a,把b移除就可以。(其实在这块的时候,就体现了一个组多个对象的不好之处,如果你一个组一个对象,那么再添加项的时候,你就不用移除了,在你开始选择组的时候,就确定了组里面有什么数据,后续可以专门设置几个组,比如第一个组都是读的数据,第二个组都是写的数据,就很方便了,我也是第一次写,写到这里了才觉得我这样设置有点麻烦了,可能唯一的好处就是matlab代码段里面只有一个组显得简洁吧。二者不可兼得啊 ,哈哈哈 如果有更简单的办法,还请告诉我)
在这里插入图片描述此时,把simulink时间设置为inf,运行simulink,就可以在MatrikonOPCExplorer看到a的值,我设置的是222。
在这里插入图片描述

第三步:NX MCD和OPC通讯

①在电气栏,新建信号,一个输入,一个输出。类型都是双精度。
②在自动化一栏,先设置外部信号配置,再设置信号映射。
在这里插入图片描述
在这里插入图片描述
把这i两个信号都添加到查看器,以便观察。
simulink和MCD中都点播放,然后就可以看到通讯成功。
在这里插入图片描述
signal0是matlab给MCD的,signal1是MCD给matlab的。打开matlab的示波器,就可以看到MCD给的信号,因为我MCD中没有任何模型,只是建立了一个信号,初始值设置为0,所以这块显示是0,在上面的MatrikonOPCExplorer也可以看出signal1是0。
在这里插入图片描述
可以改变simulink中constant的值来再次验证此操作正确。
我将constant的值改为20211203,那么MCD中的值就会变为20211203。如下图所示,OPC作为桥梁。
在这里插入图片描述
然后我在MCD中先暂停,改变我signal1的初始值为2021,再次运行。可看到如下效果
在这里插入图片描述
至此,matlab和NX MCD通过OPC联合仿真的具体操作已经结束,没有放具体案例,只是简单介绍如何实现,大家可以根据自己实际需要,进行仿真即可。
记录一下自己的学习过程,此处特别感谢我的师兄在2021年12月2日晚上给我的讲解,此文内容均是师兄讲解,我作一个学习记录,方便后续对实际案例的操作。
文中可能会有一些错误,大家可以提出疑问,然后一起解决。初学者,至此结束,后续有修改再来。

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勉为其难免免

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值