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/X/Y/L/F/V/B/S等类型软元件。

但是对于多字节编址(比如:FD/SD/D/W等),而要读取的数据项的字节数又不一样大,就需要拆分几次了。

举例说明:

比如三菱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目录)里面去了。

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

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

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

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

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 三菱FX5U编程手册是用于指导用户学习和使用三菱FX5U系列可编程控制器的参考手册。它包含了该系列控制器的基本原理和编程方法,以及常用的特殊元。 FX5U编程手册中常用的特殊元包括但不限于以下几种: 1. 定时器(TIMER):用于设置和控制程序运行中的定时操作,如延时、定时触发等。 2. 计数器(COUNTER):用于进行计数操作,如统计产品数量、计算转速等。 3. 数据存储器(DATA REGISTER):用于存储和读取各种数据,如输入/输出状态、计数器数值等。 4. 移位寄存器(SHIFT REGISTER):用于进行数据的移位操作,如位移寄存器、字移位寄存器等。 5. PID控制器(PID):用于进行闭环控制,通过调节输出信号使被控对象的状态达到期望目标。 6. 模拟量输入输出(ANALOG):用于处理和转换模拟信号,如温度、压力、电压等。 7. 高速计数(HIGH SPEED COUNTER):用于进行高速计数操作,如高速脉冲计数、频率测量等。 这些特殊元在编程中都有相应的指令和语法规则,经过合理的配置和编写程序,可以实现各种自动化控制功能。在使用这些特殊元时,需要根据实际需求和控制要求选择合适的元进行配置和编程,并确保程序的正确性和可靠性。 ### 回答2: 三菱FX5U编程手册是用于指导和帮助用户正确使用和编程三菱FX5U系列可编程控制器的手册。FX5U编程手册详细介绍了FX5U控制器的硬件结构、功能特点以及编程方法和语言等内容。 在FX5U编程手册中,常用特殊元是指在编程中经常使用的一些特殊元件。这些特殊元件一般用于对输入输出信号进行处理、逻辑运算、计数控制等特殊的功能需求。 常用的特殊元件包括: 1. 计时器(T型元件):用于实现计时功能,可以设置并记录运行时间,对各种时间事件进行控制。 2. 计数器(C型元件):通过对输入信号的计数实现对物件数量的计数功能, 可以用于物料计数、速度测量等。 3. 比较器(D型元件):用于比较两个输入信号的大小或关系,然后根据不同的比较结果执行相应的控制动作,可用于限制、排序等应用。 4. 移位寄存器(S型元件):用于对输入信号进行移位处理,常用于实现数据的输入、输出和更新。 5. 控制寄存器(R型元件):用于存放程序中需要变化和存储的数据,可以在程序运行过程中进行读写操作。 6. 输入输出控制(X、Y、M型元件):用于控制输入输出信号的状态,实现与外部设备的接口。 这些常用特殊元件FX5U编程中具有重要作用,它们能够满足各种特殊功能需求,实现更加灵活多样的控制方式。熟练掌握并正确使用这些特殊元件,可以提高编程效率和控制系统的稳定性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凌志辉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值