LabVIEW与三菱FX3U PLC通讯问题总结

——2018.7.9

遇到的问题:

1)使用C#封装的Sample_References.dll文件,速度慢,单个读取vi,读取8个字节,执行周期为30-40ms(后来是20ms?),且一个while中,读取的数量多、使用的读写vi函数多、线程多,都会导致速度变慢。另外,把线程周期设定为1ms时,反而会降低读取速度,经过测试,设定为60ms最优。没有遇到有读取数量限制的问题;设置MX Component时要选择FX NET,而不是FX3U ADP NET。

2)使用MXComponent的Active控件(简称ACT控件),MITSUBISHI ActUtlType Control(三菱的《MXComponent中文使用说明书》中介绍了两个控件,另外一个是.NET的DotUltType Control控件),在前面板插入如下所示Active对象,单个读取函数,读取8个字节,函数执行周期为10-20ms,但是发现了读取数量的限制,如果把数量设定为50,LabVIEW就崩溃了;

3)使用MX OPC 4.02。速度较快,但是问题是与5个PLC通讯时,会出现OPC与PLC连接不上的问题,变量监控时显示Not available,与一个PLC通讯则不会出现该问题;

4)使用MX OPC 6.05。速度较快,也可以同时与5个PLC通讯,比较稳定,问题如下

问题:

①  会出现LabVIEW与三菱编程软件不能同时工作的问题,如果三菱GX Works2连上PLC,则LabVIEW无法读取到数据(且OPC中的通讯质量为Bad),而如果LabVIEW先运行,可以读取到数据,但是三菱GX Works2又无法连上PLC;设置时要选择FX NET,而不是FX3U ADP NET。

②写入时有时失败,在LabVIEW中关联的变量数值已经更新了,但是在MX Configure中未更新,经过测试,把LabVIEW程序中包含写入OPC地址的前面板打开,即可正常写入(实际上,只要前面板未打开,几乎都写不进去),所以这可能是LabVIEW与MX OPC6.05通讯时的特点:必须要把前面板打开,labview中OPC变量的数据才能更新到OPC中(即写入操作)。

Notes:

①在LabVIEW的opc库文件中,可以右键OPC I/O Client属性,设定数据更新速度,默认为1000ms,可设定为100ms;

②与MX OPC通讯,LabVIEW中不能把OPC变量作为常量使用,否则运行时会提示“OPC Server返回了错误”;

③写入失败,尝试过把写入操作放置到循环中,持续去写,但是依然失败。问题的根本原因是有opc变量的vi运行时未打开前面板。另外,可以尝试把写入操作放入循环中,似乎没什么问题;

5)用NI OPC连接不上三菱FX3U PLC;

针对以上几种方案遇到的问题的解决方案:

1)

①尝试每个读写动作都使用独立命名的dll文件,看时间是否会缩短,如果可以,测试多个线程同时工作时的线程执行周期。→未测试。

②重新规划地址,并减少预留的地址,使需要读写的PLC地址连续,然后使用一个读取vi函数,一次性读取,用测试vi测试一下5个线程同时工作时,每个线程内的执行周期,线程内延时设为100ms(经过测试,延时1ms时,实际上会使其中某个线程的读取周期变长,且所有线程的读取周期并不会缩短)。规划后,每站内需要交互的变量为:LabVIEW需要读取35个D寄存器,写入16个D寄存器。经过测试,每站需要读取35个字节,写入16个字节,各5个线程,其中各放置1个读/写函数,线程周期设定为60ms时,每个线程的循环读/写时间为500-600ms;每个站的通讯程序使用1个Read和1个Write函数即可,进行批量读写。关于写的问题,实际使用场景为一个PLC需要向上一站和下一站写入数据,但是不需要使用2个Write函数,把问题转换为:在某个站的通讯线程中,只考虑其它其它站往此站写入数据,而不考虑此站往其它站写入数据,不论写入的数据来源于多少个其它站的Read函数,只需要通过中间变量,从其它站的Read函数收集数据,然后把收集到的数据创建成数组即可,即可以批量写入。因此对每个站而言,只需要一个Read函数和一个Write函数足够,总共10个函数,使用测试的方法,读写周期为500ms-600ms;

2)同上,并测试最大可读写的数量。→未测试。

3)查询手册,是否有相关设置。→未找到解决方法。

4)

①查询手册,是否有相关设置。→未找到解决方法;

②把LabVIEW程序中包含写入OPC地址的前面板外观属性设定为调用时打开(另外,“加载时打开”是打开主vi中,会把相应的加载到内存中的vi打开,“调用时打开”是程序执行到相应vi时,才会打开vi),同时为了避免运行时子vi弹出,可通过编程将相应vi的前面板隐藏,结果是主vi运行时,子vi前面板也会弹出来,但随后子vi前面板界面消失,编程方法参考《如何将LabVIEW可执行文件作为后台程序运行》https://jingyan.baidu.com/article/ed2a5d1f7ad89e09f6be172f.html;

不过有一个现象:程序启动时,会跳转到选择型号界面,默认为选择"未选择型号“,此时应该给PLC发送0,但实际上通过OPC Configure监控软件,发现有的站(ST10)相应的型号地址D2076的值仍然是上一次的值,不过这没关系,因为上位机要重新选择型号,而手动去选择型号时,数据是可以更新到OPC中的;

5)使用NI OPC,查询相关的使用方法。→未找到解决方法。

MX OPC本质上,是OPC软件调用MX Conponent控件(已经集成在OPC内部,实际使用OPC时不另外安装MX Component),来实现OPC的数据中转功能,而labview本身也是可以调用MX Conponent控件(通过ACT控件和.NET控件)的,根本不需要通过OPC来中转。

python三菱fx3u通讯mx_LabVIEW与三菱FX3U PLC通讯问题总结相关推荐

  1. 三菱fx2n做从站的modbus通讯_触摸屏与施耐德PLC通讯说明

    MCGS Tpc屏与施耐德TM218 PLC通讯说明 一硬件连接 1.PLC通讯接口说明: 2.通讯电缆图: 二PLC设置 1. 配置端口:  双击串行线路-弹出右侧设置窗口-设置串口通讯参数 2.  ...

  2. xk3190串口通讯JAVA开发包_常用品牌plc通讯协议汇总学习

    一.美系厂家Rockwell ABRockwell的PLC主要是包括:PLC2.PLC3.PLC5.SLC500.ControlLogix等型号,PLC2和PLC3是早期型号,现在用的比较多的小型PL ...

  3. 三菱FX3U与4台台达变频器通讯说明:用三菱FX3U的PLC实现与4台台达变频器modbus通讯

    三菱FX3U与4台台达变频器通讯说明:用三菱FX3U的PLC实现与4台台达变频器modbus通讯 器件:三菱FX3U PLC,三菱FX3U 485BD通讯板,台达VFD-M变频器,昆仑通态触摸屏,附送 ...

  4. 三菱FX3U与台达VFD M变频器通讯教程

    三菱FX3U与台达VFD M变频器通讯教程. 三菱FX3U与台达VFD变频器通讯案例程序全程讲解,有注释. 讲解实用,自制视频. 并附送程序,有接线方式,设置. 闲鱼上其他与我一样的,都是贩卖我的,里 ...

  5. C#上位机与PLC通讯源码 C#与三菱PLC串口通讯MC协议FX3U及FX系列

    C#上位机与PLC通讯源码 C#与三菱PLC串口通讯MC协议FX3U及FX系列 给做项目急需的人 有时间不想花钱的自己去研究. 编号:7320649082796762用户_52853082

  6. 三菱PLC与第三方设备TCP通讯_PLC | 8台FX3U三菱PLC的无线网络通讯方案

    方案介绍 本方案以433MHz自主无线通信方式,并通过三菱FX3U与485BD模块结合达泰4系无线数据终端DTD435M2. 采用三菱N:N网络协议的无线通讯,可以实现8台PLC之间的数据交换和共享. ...

  7. 三菱PLC FX3U与福禄克FLUKE 数字万用表通讯程序 样板实例程序

    三菱PLC FX3U与福禄克FLUKE 数字万用表通讯程序 样板实例程序. 硬件 三菱PLC:FX3U-32MT+FX3U-232-BD 福禄克FLUKE仪器:台式数字万用表 8808A 通过RS23 ...

  8. fx3g485通讯模块_三菱FX3U利用 FX3U-M485BD通讯模块与 MODBUS 设备通讯

    第 1 页 共 3 页 三菱 FX3U 利用 FX3U-M485BD 通讯模块与 MODBUS 设备通讯 在三菱 FX3U PLC 中往往遇到要与 modbus 设备通讯, 可是 撰写通讯又非常麻烦, ...

  9. 三菱FX3U与4台三菱变频器专用指令通讯案例

    三菱FX3U与4台三菱变频器专用指令通讯案例 功能:采用三菱FX3U PLC与4台三菱变频器E740进行通讯 配件:三菱FX3U的PLC,加FX3U 485BD板. 三菱E740变频器. 昆仑通态触摸 ...

最新文章

  1. 郭为:大数据时代的企业管理挑战
  2. netty发送数据_【Netty】JAVA IO模型
  3. Windows 2003 主域控和DNS迁移到Windows 2008 R2(2)
  4. JavaWeb学习之Path总结、ServletContext、ServletResponse、ServletRequest(3)
  5. 攻防世界Reverse第七题simple-unpack
  6. BeyondCompare4如何破解
  7. 音视频技术开发周刊 | 237
  8. Change Fiori launchpad logo
  9. 【转】String.format详解
  10. Power BI连接MySQL 提示错误......未能加载文件或程序集......或它的某一个依赖项
  11. 使用csscan评测字符集改变
  12. Mycat分库分表的简单实践 / 用Mycat,学会数据库读写分离、分表分库
  13. 【2019银川网络赛A:】Maximum Element In A Stack(动态求栈中最大值)
  14. flask实现mysql连接池_mysql-Flask-SQLAlchemy-快速连接到多个数据库
  15. Ubuntu二进制编辑器Hexdump
  16. 【面试:基础篇06:FailFast与FailSafe机制】
  17. 腾讯开源开门红,云原生操作系统TencentOS Kernel正式登陆Github
  18. 协方差矩阵和相关矩阵的关系
  19. kafka 学习 非常详细的经典教程
  20. python16进制转10进制_python16进制转换为10进制

热门文章

  1. Hadoop2.7.5集群搭建
  2. 什么是嵌入式编程?如何入门和提高?
  3. 考研邱关源电路总结第一章
  4. java水果爆炸动画,这种水果叫炮弹果会爆炸?这是一起海关人员被媒体坑了的沙雕事件...
  5. 如何成为大数据架构师?
  6. TP-link wdr7800百M拆解
  7. 【23M1W1】菊厂入职前的一些小复习
  8. 真正可用win10 x64位twain协议虚拟扫描仪.net C#Twain连接打印机扫描仪winform测试demo
  9. GNSS速度场简易MATLAB克里金插值
  10. 设计一个网络出现网络风暴