Win32:三菱FX3U/FX5U读写软元件方法和注意事项
目录
一、常见编址类型
二、不同编址类型的读写形式
三、需要特别避开的坑
一、常见编址类型
也就是地址编号的单位了,主要有以下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读写软元件方法和注意事项相关推荐
- Win32:三菱FX3U/FX5U的32位和64位MX插件注意事项
在前一篇写了Win32:三菱FX3U/FX5U读写软元件方法和注意事项关于软元件读写的注意事项. 本篇主题是关于32位的MX插件和64位的插件使用需要注意的事项. 类型的切换 在32位的时候,我们创建 ...
- FX3U/UC中软元件一览
FX3系列 高端机型:FX3U/3UC 基本机型:FX3GA/GE/GC 建议机型:FX3SA 0总览 FX3软元件一览: 软元件缩写 软元件名称 X 输入继电器 Y 输出继电器 M 辅助继电器 S ...
- 三菱FX5U通过简易PLC间链接功能实现与FX5U或FX3U主从通信的具体方法(图文)
三菱FX5U通过简易PLC间链接功能实现与FX5U主从通信的具体方法 简易PLC间链接功能,就是在最多8台FX5U或者FX3U系列PLC之间,通过RS485通信连接,进行软元件相互链接的功能. 根 ...
- 三菱je-a系列伺服支持modbusrtu 协议吗_入门课程 | 三菱FX系列PLC的软元件介绍
点击箭头处"工业之家",选择"关注公众号"! 三菱FX系列PLC的软元件介绍 PLC的软元件很多,主要有输入继电器.输出继电器.定时器.计数器.数据寄存器和常 ...
- 三菱fx5u modbus tcp fb块用法_三菱PLC型号怎么选?四大方面告诉你三菱FX3U和5U的最大区别!...
三菱FX3U系列PLC是第三代微型可编程控制器,采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算.顺序控制.定时.计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械 ...
- 三菱PLC的6大软元件知识
一.状态继电器(S) 状态继电器是编制步进程序的重要软元件,与辅助继电器一样,可以有无数个常开触点和常闭触点,其表示符号为S,按十进制方式编号,如S0-S9.S10-S19.S20~S499等. 状态 ...
- plc c语言 软元件t,三菱PLC软元件的种类及功能大全
1. 输入(X)·输出(Y)继电器 · 各基本单元中,都按照 X000 - X007.X010 - X017-.Y000- Y007.Y010 -Y017-分配了8 进制的输入继电器.输出继电器的编号 ...
- 三菱Q系列PLC批量读取软元件
简介: 通过阅读MX Component文档,了解相关函数及注意事项,开发环境是Windows,开发软件VC 6++,需要安装MX Component. 1.代码展示 CString szReadDe ...
- 三菱FX3U系列PLC运动控制_伺服回原点的3种方法示例
三菱FX3U系列PLC运动控制_伺服回原点的3种方法示例 方法1: 运动的方向为圆形.环形.电机往一个方向转动: 只有一个原点开关,没有极限开关 如下图所示, 原点回归的方式为:启动回原点后,电机开始 ...
最新文章
- TensorFlow全球下载量破1亿,Jeff Dean激动不已,但网友却不给面子
- 量子信息技术研究现状与未来——郭光灿
- 删除oracle数据库归档日志,Oracle数据库--删除归档日志
- 域服务器重装系统,win10系统配置域控制器的详细步骤
- 父类的静态方法能否被子类重写?
- MySQL二级比office二级_如何快速拿到计算机office二级
- python的多线程应用前景_什么是线程(多线程),Python多线程的好处
- nvarchar转换为int类型失败_2.2 C++强制类型转换 | 将3.3转换为整型输出
- LeetCode(136)——只出现一次的数字(JavaScript)
- 护航亚运|安恒信息推出“九维五星” ,并强调将全面突出“智能亚运”
- python中的__future__模块
- 数据读写 CommonCurd
- javascript遍历对象属性和方法
- 「案例分享」工程总承包模式下对分包单位管理和控制的做法
- SUBMAIL短信平台API接口-Message/send
- 编译原理实验四 语义分析及中间代码生成
- 阿里云硬盘挂载与扩容
- 第四期:如何通过知晓云自动回复客服消息
- svg格式的图片怎么放到word中?
- gitlab rpm包安装方法