目录

一、常见编址类型

二、不同编址类型的读写形式

三、需要特别避开的坑


一、常见编址类型

也就是地址编号的单位了,主要有以下8种形式

  • 按位编址(1-bit编址),三菱FXnU系列PLC软元件支持这种;
  • 按字节编址(8-bit编址),一般PC机的存储都是这种;
  • 按字编址(16-bit编址),三菱FXnU系列PLC软元件支持这种;
  • 按三字节编址(24-bit编址),PMAC的存储支持这种;
  • 按双字编址(32-bit编址),少见;
  • 按6字节编址(48-bit编址),较少见;
  • 按8字节编址(64-bit编址),极少见;
  • 按16字节编址(128-bit编址),没见过;

当然将来或许更大的编址单位,时间问题也或者是有没有必要的问题了。

就目前而言,99%的情况集中在前四种了

二、不同编址类型的读写形式

这就以上面的类型有密切关系了。

最关键的就两句话总结:

  • 用什么样的接口去读什么类型的地址;
  • 数据项是几位、一次地址读/写多少位,需要读/写多少次;

把这两句话想明白了,一般就没有什么问题了。

对于按位编址的,给定地址读取和写入,始终就是0/1, 很难出现问题,比如三菱PLC的M类型软元件。

但是对于多字节编址,而要读取的数据项的字节数又不一样大,就需要拆分几次了。

举例说明:

比如三菱PLC的 D类型软元件,它是双字类型(4字节),读取地址是按字编址,2个字节的。

那就意味着:要读D地址数据(4字节),需要读2个字地址(addr,addr+1),组合成4字节.

写入D类型地址的时候也需要写入两次。

以写入D类型地址D398为例:

    long v = 你要设置的数值;long low = v & 0xffff;long high = (v & 0xffff0000) >> 16;SetAddrValue(_T("D398"), low);SetAddrValue(_T("D399"), high);

在读出来的时候也应如此高低字组合,读者自行完成,不再赘述。

三、需要特别避开的坑

针对带自动化的机器,如果上位机用的三菱的MX插件,创建的ActProgType/ActUtlType的COM接口形式进行PLC软元件读/写,直接调用的是:

  • p_IProgType->GetDevice
  • p_IProgType->SetDevice

就需要特别注意了,一不小心就会导致你的软件概率性出现闪退了,抓异常call stack可以一路回溯到:IProgType->GetDevice/SetDevice->EasySocketW.dll(MELSOFT目录)->ECCommunicationW.dll(MELSOFT/EasySocket/CommunicationW目录)里面去了。

所以这两个函数不是线程安全的,需要我们自己保证它安全。

两个接口不允许同时调用,必须用同一把锁进行同步

注意不是在百里外挂一把锁,是在原子操作的共享段挂一把锁。

如果遇到有什么疑问,可留言或站内私信消息。

Win32:三菱FX3U/FX5U读写软元件方法和注意事项相关推荐

  1. Win32:三菱FX3U/FX5U的32位和64位MX插件注意事项

    在前一篇写了Win32:三菱FX3U/FX5U读写软元件方法和注意事项关于软元件读写的注意事项. 本篇主题是关于32位的MX插件和64位的插件使用需要注意的事项. 类型的切换 在32位的时候,我们创建 ...

  2. FX3U/UC中软元件一览

    FX3系列 高端机型:FX3U/3UC 基本机型:FX3GA/GE/GC 建议机型:FX3SA 0总览 FX3软元件一览: 软元件缩写 软元件名称 X 输入继电器 Y 输出继电器 M 辅助继电器 S ...

  3. 三菱FX5U通过简易PLC间链接功能实现与FX5U或FX3U主从通信的具体方法(图文)

    三菱FX5U通过简易PLC间链接功能实现与FX5U主从通信的具体方法 简易PLC间链接功能,就是在最多8台FX5U或者FX3U系列PLC之间,通过RS485通信连接,进行软元件相互链接的功能.  根 ...

  4. 三菱je-a系列伺服支持modbusrtu 协议吗_入门课程 | 三菱FX系列PLC的软元件介绍

    点击箭头处"工业之家",选择"关注公众号"!  三菱FX系列PLC的软元件介绍 PLC的软元件很多,主要有输入继电器.输出继电器.定时器.计数器.数据寄存器和常 ...

  5. 三菱fx5u modbus tcp fb块用法_三菱PLC型号怎么选?四大方面告诉你三菱FX3U和5U的最大区别!...

    三菱FX3U系列PLC是第三代微型可编程控制器,采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算.顺序控制.定时.计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械 ...

  6. 三菱PLC的6大软元件知识

    一.状态继电器(S) 状态继电器是编制步进程序的重要软元件,与辅助继电器一样,可以有无数个常开触点和常闭触点,其表示符号为S,按十进制方式编号,如S0-S9.S10-S19.S20~S499等. 状态 ...

  7. plc c语言 软元件t,三菱PLC软元件的种类及功能大全

    1. 输入(X)·输出(Y)继电器 · 各基本单元中,都按照 X000 - X007.X010 - X017-.Y000- Y007.Y010 -Y017-分配了8 进制的输入继电器.输出继电器的编号 ...

  8. 三菱Q系列PLC批量读取软元件

    简介: 通过阅读MX Component文档,了解相关函数及注意事项,开发环境是Windows,开发软件VC 6++,需要安装MX Component. 1.代码展示 CString szReadDe ...

  9. 三菱FX3U系列PLC运动控制_伺服回原点的3种方法示例

    三菱FX3U系列PLC运动控制_伺服回原点的3种方法示例 方法1: 运动的方向为圆形.环形.电机往一个方向转动: 只有一个原点开关,没有极限开关 如下图所示, 原点回归的方式为:启动回原点后,电机开始 ...

最新文章

  1. TensorFlow全球下载量破1亿,Jeff Dean激动不已,但网友却不给面子
  2. 量子信息技术研究现状与未来——郭光灿
  3. 删除oracle数据库归档日志,Oracle数据库--删除归档日志
  4. 域服务器重装系统,win10系统配置域控制器的详细步骤
  5. 父类的静态方法能否被子类重写?
  6. MySQL二级比office二级_如何快速拿到计算机office二级
  7. python的多线程应用前景_什么是线程(多线程),Python多线程的好处
  8. nvarchar转换为int类型失败_2.2 C++强制类型转换 | 将3.3转换为整型输出
  9. LeetCode(136)——只出现一次的数字(JavaScript)
  10. 护航亚运|安恒信息推出“九维五星” ,并强调将全面突出“智能亚运”
  11. python中的__future__模块
  12. 数据读写 CommonCurd
  13. javascript遍历对象属性和方法
  14. 「案例分享」工程总承包模式下对分包单位管理和控制的做法
  15. SUBMAIL短信平台API接口-Message/send
  16. 编译原理实验四 语义分析及中间代码生成
  17. 阿里云硬盘挂载与扩容
  18. 第四期:如何通过知晓云自动回复客服消息
  19. svg格式的图片怎么放到word中?
  20. gitlab rpm包安装方法

热门文章

  1. JVAV SE冒泡排序
  2. 什么是等保?为什么要做等保?
  3. 用project做项目计划之 项目成本、预算、基线工期、基线成本、基线时间
  4. C语言定义数组起始地址对齐方式(IAR C99 Kinetis K66)
  5. 计算机网络之传输层笔记
  6. 汽车芯片:缺货将诱发产业变革
  7. Laravel 的闪存数据(Flash Data)
  8. 科技园区及科研实验室智能消防安全管控系统
  9. 显示器不亮电源灯闪_电脑开机显示器指示灯一闪一闪的屏幕就是不亮
  10. 吉林教育杂志吉林教育杂志社吉林教育编辑部2022年第18期目录