返回主站|会员中心|保存桌面

台湾建准大陆区域综合服务商    

风扇|冷却模组|散热解决方案

新闻分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 新闻中心 > 三菱Fx3u通过RS指令与多个温控器通讯程序!
新闻中心
三菱Fx3u通过RS指令与多个温控器通讯程序!
发布时间:2025-10-01        浏览次数:0        返回列表

以下是三菱 FX3U PLC 通过 RS 指令与多个温控器进行通讯的程序设计。该方案采用 Modbus RTU 协议(假设温控器支持此协议),通过轮询方式与多个温控器通讯,实现温度读取和设定功能。

三菱FX3U与多个温控器通讯程序


// 主程序:初始化与轮询控制

LD     M8000

MOV    K0     D100       // 通讯状态初始化:0-空闲,1-读取1#,2-读取2#,3-读取3#,4-写入

MOV    K0     D110       // 错误计数清零

MOV    K3     D120       // 温控器总数


// 通讯初始化(仅首次扫描执行)

LD     M8002

MOV    H0080  D8120      // 通讯格式:9600bps,无奇偶校验,8位数据,1位停止位

SET    M8121             // 启用RS指令的Modbus模式


// 轮询控制

LD     M8000

CMP    D100   K0         // 检查是否空闲

AND    M8123             // 确认上一次通讯完成

MOV    K1     D100       // 开始读取1#温控器


LD     M8000

CMP    D100   K1         // 读取1#温控器

AND    M8123

CALL   P10               // 调用读取子程序

MOV    K2     D100       // 下一步读取2#


LD     M8000

CMP    D100   K2         // 读取2#温控器

AND    M8123

CALL   P20

MOV    K3     D100       // 下一步读取3#


LD     M8000

CMP    D100   K3         // 读取3#温控器

AND    M8123

CALL   P30

MOV    K0     D100       // 完成一轮,回到空闲状态


// 错误处理

LD     M8129             // 通讯错误

ADD    K1     D110       D110

RST    M8129

MOV    K0     D100       // 重置通讯状态


// 读取1#温控器子程序 (P10)

P10:

MOV    K1     D200       // 温控器地址

MOV    H03    D201       // 读取命令

MOV    H0000  D202       // 起始地址(温度值)

MOV    K1     D203       // 读取字数

CALL   P100              // 通用读取子程序

MOV    D210   D300       // 保存1#温度到D300


// 读取2#温控器子程序 (P20)

P20:

MOV    K2     D200

MOV    H03    D201

MOV    H0000  D202

MOV    K1     D203

CALL   P100

MOV    D210   D301       // 保存2#温度到D301


// 读取3#温控器子程序 (P30)

P30:

MOV    K3     D200

MOV    H03    D201

MOV    H0000  D202

MOV    K1     D203

CALL   P100

MOV    D210   D302       // 保存3#温度到D302


// 通用读取子程序 (P100)

P100:

// 构建发送数据帧

MOV    D200   D8122      // 从站地址

MOV    D201   D8123      // 功能码

MOV    D202   D8124      // 起始地址高8位

SWAP   D202

AND    H00FF  D202       // 起始地址低8位

MOV    D202   D8125

MOV    D203   D8126      // 数据长度高8位

SWAP   D203

AND    H00FF  D203

MOV    D203   D8127      // 数据长度低8位


// 发送数据

MOV    K8     D8128      // 发送字节数

RS     D8122  K0         // 执行通讯


// 等待响应并处理

LD     M8123             // 通讯完成

MOV    D8130  D210       // 保存接收数据

RET


// 温度设定触发(示例:通过X0设定1#温控器)

LD     X0

AND    M8000

MOV    K1     D400       // 温控器地址

MOV    H06    D401       // 写入命令

MOV    H0001  D402       // 设定值地址

MOV    K500   D403       // 设定温度(50.0℃)

CALL   P200              // 调用写入子程序

RST    X0


// 通用写入子程序 (P200)

P200:

// 构建写入数据帧

MOV    D400   D8122      // 从站地址

MOV    D401   D8123      // 功能码

MOV    D402   D8124      // 写入地址高8位

SWAP   D402

AND    H00FF  D402

MOV    D402   D8125      // 写入地址低8位

MOV    D403   D8126      // 写入数据高8位

SWAP   D403

AND    H00FF  D403

MOV    D403   D8127      // 写入数据低8位


// 发送数据

MOV    K8     D8128      // 发送字节数

RS     D8122  K0         // 执行通讯

RET


// 数据转换:将温控器返回的原始值转换为实际温度(℃)

LD     M8000

DIV    D300   K10       D310  // 1#温度:D300/10=实际温度

DIV    D301   K10       D311  // 2#温度

DIV    D302   K10       D312  // 3#温度

程序说明

  1. 通讯参数设置

    • 采用 Modbus RTU 协议,通讯波特率 9600bps,无奇偶校验,8 位数据位,1 位停止位

    • 通过 D8120 设置通讯格式,M8121 启用 Modbus 模式

  2. 轮询机制

    • 程序采用轮询方式依次与 1#、2#、3# 温控器通讯

    • 每次通讯完成后(M8123 置位)才进行下一个设备的通讯

    • 通讯状态由 D100 控制,0 - 空闲,1 - 读取 1#,2 - 读取 2#,3 - 读取 3#

  3. 数据处理

    • 读取的温度值存储在 D300(1#)、D301(2#)、D302(3#)

    • 通过除法运算(DIV)将原始值转换为实际温度值(D310-D312)

    • 错误计数存储在 D110,可用于监控通讯稳定性

  4. 温度设定功能

    • 通过 X0 触发 1# 温控器的温度设定(示例设定为 50.0℃)

    • 写入功能使用 Modbus 的 06 功能码,可根据需要扩展到其他温控器

使用注意事项

  1. 硬件连接:需将 FX3U 的 RS485 通讯模块(如 FX3U-485-BD)与温控器的 RS485 接口正确连接(A-A, B-B)

  2. 地址设置:确保温控器的实际地址与程序中设置的地址(K1, K2, K3)一致

  3. 波特率匹配:所有温控器的波特率、数据格式需与 PLC 设置的一致

  4. 超时设置:可根据需要调整 D8129(通讯超时时间),默认 100ms

  5. 扩展方法:若需增加温控器数量,只需增加相应的轮询步骤和数据存储区

该程序可根据实际使用的温控器型号和通讯协议细节进行适当调整,确保数据交互的准确性和稳定性。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服