OMRON FQM1运动控制器指令系统
OMRON FQM1系列柔性运动控制器作为工业自动化领域的核心组件,其强大的指令集与灵活的系统架构为现代FA(工厂自动化)系统提供了坚实的基础。本文基于FQM1系列(涵盖FQM1-CM002、FQM1-MMP22及FQM1-MMA22型号)的指令参考手册,深入剖析其技术规格、安全准则、版本演进及编程指令细节,旨在为电气工程师与系统设计师提供一份详尽的专业技术指南。
系统概述与安全规范
FQM1系列控制器由协调模块与运动控制模块组成,其设计初衷是为了满足复杂的运动控制与逻辑控制需求。作为专业工业设备,其操作与维护严格限定由具备电气工程知识的专业人员执行。手册中通过“DANGER”、“WARNING”及“Caution”三个等级清晰界定了安全风险。
在操作层面,手册强调了几项至关重要的安全原则:
触电防护:严禁在通电状态下拆卸模块或触摸端子,这可能导致严重的电击伤害。
外部安全回路:鉴于控制器可能因硬件故障或自诊断错误导致输出异常(如输出锁定在ON或OFF状态),系统设计必须包含外部物理安全回路(如紧急停止电路、互锁电路),以确保在控制器失效时系统能安全停机。
接地要求:安装时必须连接100Ω以下的接地电阻,特别是电源单元的功能接地与线路接地端子短接时,必须确保接地良好,以防触电或干扰。
此外,手册还详细列出了运行环境注意事项,禁止在阳光直射、凝露、腐蚀性气体或强电磁场环境下运行,并强调在接线时需使用压接端子,避免直接连接裸露绞线,以防止短路或火灾风险。
单元版本与功能演进
FQM1系列控制器通过“单元版本”管理功能的迭代与硬件升级。版本号通常标注在模块名牌的批次号右侧。从版本2.0到3.3,控制器经历了显著的功能增强:
版本3.1:主要改进在于获得了UL认证,要求配置特定的继电器单元与连接电缆以符合安全标准。
版本3.2:引入了多项关键功能。电子凸轮模式下,PULS(886)指令支持脉冲输出过零点(CW/CCW方向),并可自动计算脉冲输出频率。此外,新增了循环刷新区用于模块间数据交换,并扩展了对CJ系列单元的支持,如模拟量输出单元(CJ1W-DA08V等)及位置控制单元。在系统设置中,20MHz时钟频率输出范围可扩展至1 Hz至1 MHz,极大提升了低频控制精度。
版本3.3:重点增强了对伺服电机的兼容性,开始支持OMNUC G系列绝对编码器,并进一步扩展了CJ系列特殊I/O单元的挂载能力,包括模拟输入/输出单元及混合模块。
这些版本差异要求工程师在设计系统时需核对模块版本,确保软件指令与硬件功能的匹配。

编程基础与数据结构
FQM1的程序容量依模块类型而异,协调模块(CM002)为10K步。编程采用梯形图逻辑,指令执行涉及位处理与字处理。理解数据格式与寻址方式是高效编程的前提。
1. 数据格式
FQM1支持多种数据格式,包括无符号二进制、有符号二进制、BCD码以及浮点数。浮点数遵循IEEE754标准,支持单精度与双精度运算,广泛应用于高精度的数学运算指令中。二进制负数采用补码表示,这对于理解算术运算结果至关重要。
2. 操作数与寻址
指令通常包含源操作数、目标操作数及控制数。
位地址:指定字地址与位号(如0001.02)。
间接寻址:支持二进制模式(@D)与BCD模式(*D)。例如,@D00300表示将D00300的内容作为新的地址指针,极大地增强了程序的灵活性。
常量输入:支持十进制(&前缀)与十六进制(#前缀),但在计时器/计数器设定值中,常量输入需符合BCD码范围。
3. 微分指令
为了捕捉信号的边沿变化,FQM1提供了非微分、上升沿微分(@前缀)及下降沿微分(%前缀)指令。上升沿微分仅在执行条件由OFF转ON时执行一次,下降沿微分则反之。这在处理触发信号、避免重复执行方面具有关键作用。
核心指令集详解
FQM1的指令集庞大且分类细致,以下重点解析关键指令类别。
1. 顺序输入指令
这是梯形图编程的基石。LD(载入)、AND(与)、OR(或)及其非(NOT)形式构成了逻辑判断的基础。
逻辑块连接:AND LD与OR LD指令用于连接复杂的逻辑块。手册指出,在使用这些指令连接多个逻辑块时,LOAD指令的数量必须比AND LD/OR LD指令多一个,否则将引发编程错误。
位测试指令:TST(350)与TSTN(351)允许像LD/AND/OR一样测试指定字中的特定位状态,且支持DM区操作,解决了传统触点指令无法直接读取DM区位的局限。
条件通断:UP(521)与DOWN(522)指令简化了微分逻辑,无需占用工作位即可产生单周期脉冲,有助于精简程序步数。
2. 顺序输出指令
输出与保持:OUT指令直接输出执行条件的状态,而KEEP(011)指令则实现了锁存继电器功能。当Set输入ON时置位,Reset输入ON时复位。需注意,在互锁程序段中,KEEP指令能保持状态,而普通自保持电路则会因互锁解除而复位。
置位与复位:SET与RSET指令独立于执行条件,仅当条件ON时改变位状态,OFF时保持不变。相比之下,SETB(532)与RSTB(533)及OUTB(534)指令不仅能操作DM区位,还支持立即刷新变体(!前缀),可直接更新物理输出端子,缩短了响应时间。
3. 顺序控制指令
互锁:IL(002)与ILC(003)必须成对使用。当IL条件为OFF时,IL与ILC之间的程序段输出被强制复位(OUT变OFF,TIM复位),但SET/RSET及计数器状态保持不变。这与JMP指令不同,JMP跳过的程序段中所有输出状态均保持原状。
跳转:JMP(004)/JME(005)对用于跳过程序段。当JMP条件OFF时跳转发生,跳过的指令不执行,循环时间缩短。CJP(510)为条件ON时跳转,CJPN(511)则类似JMP。注意跳转指令必须成对且在同一任务内。
循环:FOR(512)/NEXT(513)构成了循环结构,N值决定循环次数。BREAK(514)指令可用于强制退出循环。循环嵌套深度限制为15层,且不可跨任务。
4. 定时器与计数器指令
FQM1提供了多种精度的定时器:
TIM:标准100ms递减计时器,精度-0.01s~0s。
TIMH(015):高速10ms递减计时器。
TMHH(540):超高精度1ms递减计时器,其当前值通过中断每1ms刷新,适合微秒级控制需求。
CNTR(012):可逆计数器,具备递增与递减输入端,适用于位置累计等场景。
手册特别指出,在跳转程序段中,正在计时的定时器会继续计时;而在互锁程序段中,定时器会被复位。这是由于IL指令会强制重置输出状态,而JMP仅跳过执行逻辑。
5. 数据处理与运算指令
虽然本文源数据未完全覆盖所有运算指令,但从指令列表可窥其全貌。
比较指令:除了基本的CMP,还有符号比较指令(如LD >, AND <=等)以及表格比较(TCMP)、块比较(BCMP)。块比较BCMP(068)能判断源数据是否在预设的上下限范围内,极大地简化了多区间判断逻辑。
数据移动:MOV指令家族支持字、位、数字位的传输。XCHG(073)用于数据交换,XFER(070)用于块传输,BSET(071)用于内存填充。
数学运算:支持BCD码与二进制的四则运算,含进位处理。浮点运算指令(如+F, *F)符合IEEE754标准,支持三角函数、指数对数运算,满足复杂算法需求。
逻辑运算:ANDW, ORW, XORW等指令用于字数据的按位逻辑操作,常用于状态字屏蔽或提取。
高级功能与系统维护
FQM1具备完善的自诊断功能。FAL(006)用于非致命错误报警,系统继续运行;FALS(007)则指示致命错误,会停止控制器运行。这些指令配合辅助区(A区)的标志位,为故障排查提供了便利。
数据备份机制方面,协调模块的用户程序与部分DM区通过Flash内存备份,而运动控制模块的部分DM区与错误日志则依赖超级电容。在25°C环境下,电容备份时间可达约100小时,但随环境温度升高及年限增加,备份时间会缩短。因此,对于长期断电后的数据恢复,建议将关键参数存入Flash支持的DM区地址(D20000-D32767)。
