全部手册
SIMTUTAI / DOCUMENTATION

开发手册

开发手册、使用视频,应用案例。

ApusTAI支持 DCBUS、XGUS、Modbus RTU 和FX2N等多种 PLC 协议。同一路串口选择一种协议,将控件绑定到对应设备变量地址即可通信。

1. DCBUS

在工程设置中选择 DCBUS,配置如下所示。

DCBUS 协议设置
  1. 帧头:2 字节,可自定义,图中为 0xAA55。
  2. 站号:1 字节,图中为 0,主板发送的站号应与屏幕一致。
  3. 启用 CRC:开启后使用 CRC16 校验;关闭时校验字段为 CC CC。帧头不参与校验。
  4. 自动上传:开启后,操作控件修改变量时,将变量值上传给主板。
  5. 写命令应答:开启后,主板写入成功时,屏幕返回应答。

CRC16 计算函数如下,计算范围为站号至数据末尾,校验结果低字节先发送。

c 复制代码
#include <stdint.h>

uint16_t crc16_modbus(const uint8_t *buffer, uint32_t n)
{
    uint16_t crc = 0xFFFF;
    uint32_t i;
    uint8_t j;

    for (i = 0; i < n; i++)
    {
        crc ^= buffer[i];
        for (j = 0; j < 8; j++)
        {
            if (crc & 0x0001)
                crc = (crc >> 1) ^ 0xA001;
            else
                crc >>= 1;
        }
    }
    return crc;
}

读写请求的帧格式如下:

帧头 站号 长度 功能码 地址 数据 校验
2 字节 1 字节 1 字节 1 字节 2 字节 N 字节 2 字节
0xAA55 0x00~0xFF 功能码至校验的字节数 0xF1写/0xF2读 LW 变量地址 写入值或读取数量 CRC16 / CC CC

地址和单字数据均高字节在前。屏幕本机寄存器分为 LW 和 RW,本节 DCBUS 报文读写 LW。

LW / RW 寄存器

寄存器地址采用十六进制,每个寄存器占 2 字节。

寄存器范围 用途 说明
LW0000~LW0FFF 系统寄存器区 按系统功能定义使用
LW1000~LWFFFF 用户变量区 运行内存,掉电不保存
RW0000~RW7FFF 用户参数存储区 容量 64 KB,掉电保存

重点: 用户变量从 LW1000(0x1000) 开始使用。LW1000 以下为系统寄存器,不能当作普通变量使用,以免与系统功能冲突。

RW 保存与擦写次数

RW 写入成功后自动保存,无需额外发送保存命令。Flash 单扇区擦写寿命按 10 万次估算;系统采用双区轮换和增量写入,RW 写入次数不等于 Flash 擦写次数。

RW 适合保存设置参数。频繁变化的数据建议使用 LW,需要掉电保存时再写入 RW。

1.1 写变量(0xF1)

以下示例使用帧头 AA 55、站号 0,关闭 CRC。向 LW1000 写入数值 100:

text 复制代码
主板发送:AA 55 00 07 F1 10 00 00 64 CC CC
屏幕应答:AA 55 00 03 F1 CC CC

00 为站号,07 为长度,F1 为写命令,10 00 为地址,00 64 为数值 100。写应答需开启“写命令应答”。

1.2 读变量(0xF2)

读取 LW1000 的 1 个字,假设当前值为 100:

text 复制代码
主板发送:AA 55 00 06 F2 10 00 01 CC CC
屏幕返回:AA 55 00 08 F2 10 00 01 00 64 CC CC

01 为读取 1 个字,每字 2 字节;单次读取范围为 1~124 个字。

1.3 变量自动上传(0xF2)

开启“自动上传”后,在屏幕上将 LW1000 修改为 100,上传报文如下:

text 复制代码
屏幕上传:AA 55 00 08 F2 10 00 01 00 64 CC CC

上述示例开启 CRC 后,站号仍为 0,报文如下:

text 复制代码
写入:AA 55 00 07 F1 10 00 00 64 62 49
写应答:AA 55 00 03 F1 B0 B4
读取:AA 55 00 06 F2 10 00 01 7A A6
读应答 / 自动上传:AA 55 00 08 F2 10 00 01 00 64 4D 31

2. XGUS

在工程设置中选择 XGUS,配置如下所示。

XGUS 协议设置
  1. 帧头:2 字节,可自定义,图中为 0xA55A。
  2. 启用 CRC:图中关闭;开启后增加 2 字节 CRC,校验从命令字算到数据末尾。
  3. 自动上传:开启后,将控件修改后的变量值上传给主板。
  4. 写命令应答:开启后,写入成功时返回应答。
  5. XGUS 模式:选择与主板匹配的模式,图中为 XGUS-I。

XGUS 帧中不含站号,0x82 为写变量,0x83 为读变量。关闭 CRC 时不附加校验字段。

3. Modbus RTU

屏幕支持 Modbus RTU,可设置为主机或从机。

3.1 主机模式(ModbusMaster)

屏幕作为主机,主动读写外部设备,配置如下所示。

ModbusMaster 协议设置
  1. 最多读取数:设置单次读取的最大数量。
  2. 读取间隔数:合并读取时,允许跨过的未使用地址数量。
  3. 写重试次数:设置写入失败后的重试次数。
  4. 超时时间:发送请求后等待从机应答的时间,单位 ms。
  5. 间隔时间:本次通信结束至下次请求的间隔,单位 ms。
  6. 写寄存器命令:自动模式下,单个寄存器用 0x06,多个寄存器用 0x10;选择 0x10 时统一使用该命令。
  7. 离线读取优化:减少离线从机占用的通信时间。
  8. 与 PLC 画面同步:画面写入地址用于回写当前画面号;画面取自地址用于读取目标画面号。
  9. 从站:设置从站数目、站号和地址范围,普通从站站号为 1~247。
  10. 预设字节序:设置整数、浮点数的数据排列,与从机保持一致。

支持功能码:0x01、0x02、0x03、0x04、0x05、0x06、0x0F、0x10。

3.2 从机模式(ModbusSlave)

屏幕作为从机,接收主机的读写请求,配置如下所示。

ModbusSlave 协议设置
  1. 从站站点:设置屏幕站号,与主机请求一致。
  2. 字符间隔:用于判断接收数据的帧间隔。
  3. 延时应答:收到请求后,延时指定时间再应答,单位 ms。
  4. 与 PLC 画面同步:画面写入地址记录当前画面号;画面取自地址指定目标画面号。
  5. 预设字节序:设置多字节数据的排列,与主机保持一致。

支持功能码:0x01、0x02、0x03、0x04、0x05、0x06、0x0F、0x10。0 区为线圈,1 区为离散输入,3 区为输入寄存器,4 区为保持寄存器;1 区和 3 区仅支持读取。

4. 三菱 FX2N

选择 FX2N 协议,配置如下所示。

FX2N 协议设置
  1. 最多读取数:设置单次读取的最大数量。
  2. 读取间隔数:设置合并读取时允许跨过的地址数量。
  3. 写重试次数:设置写入失败后的重试次数。
  4. 超时时间:等待 PLC 应答的时间,单位 ms。
  5. 间隔时间:两次通信之间的间隔,单位 ms。
  6. 模式:可选标准或扩展,按 PLC 支持的地址范围选择。
  7. 与 PLC 画面同步:画面写入地址回写当前画面号;画面取自地址读取目标画面号。
  8. 预设字节序:设置整数、浮点数的数据排列。

5. 三菱 FX3U

选择 FX3U 协议,配置如下所示。

FX3U 协议设置
  1. 最多读取数:设置单次读取的最大数量。
  2. 读取间隔数:设置合并读取时允许跨过的地址数量。
  3. 写重试次数:设置写入失败后的重试次数。
  4. 超时时间:等待 PLC 应答的时间,单位 ms。
  5. 间隔时间:两次通信之间的间隔,单位 ms。
  6. 模式:可选标准或扩展,图中为标准模式。
  7. 与 PLC 画面同步:画面写入地址回写当前画面号;画面取自地址读取目标画面号。
  8. 预设字节序:设置整数、浮点数的数据排列。

6. 台达 DELTA(DVP)

台达 DVP 使用 Modbus ASCII 通信和 LRC 校验,配置如下所示。

DELTA(DVP) 协议设置
  1. 最多读取数:设置单次读取的最大数量。
  2. 读取间隔数:设置合并读取时允许跨过的地址数量。
  3. 写重试次数:设置写入失败后的重试次数。
  4. 超时时间:等待 PLC 应答的时间,单位 ms。
  5. 间隔时间:两次通信之间的间隔,单位 ms。
  6. 写寄存器命令:可选自动或 0x10。
  7. 离线读取优化:减少离线从机占用的通信时间。
  8. 与 PLC 画面同步:画面写入地址回写当前画面号;画面取自地址读取目标画面号。
  9. 从站:设置 PLC 数目、站号和地址范围。
  10. 预设字节序:设置整数、浮点数的数据排列。

7. 信捷 XINJE(XC)

信捷 XC 使用 Modbus RTU 通信和 CRC 校验,配置如下所示。

XINJE(XC) 协议设置
  1. 最多读取数:设置单次读取的最大数量。
  2. 读取间隔数:设置合并读取时允许跨过的地址数量。
  3. 写重试次数:设置写入失败后的重试次数。
  4. 超时时间:等待 PLC 应答的时间,单位 ms。
  5. 间隔时间:两次通信之间的间隔,单位 ms。
  6. 写寄存器命令:可选自动或 0x10。
  7. 离线读取优化:减少离线从机占用的通信时间。
  8. 与 PLC 画面同步:画面写入地址回写当前画面号;画面取自地址读取目标画面号。
  9. 从站:设置 PLC 数目、站号和 XC 系列地址范围。
  10. 预设字节序:设置整数、浮点数的数据排列。

8. 信捷 XINJE(XD)

信捷 XD 使用 Modbus RTU 通信和 CRC 校验,配置如下所示。

XINJE(XD) 协议设置
  1. 最多读取数:设置单次读取的最大数量。
  2. 读取间隔数:设置合并读取时允许跨过的地址数量。
  3. 写重试次数:设置写入失败后的重试次数。
  4. 超时时间:等待 PLC 应答的时间,单位 ms。
  5. 间隔时间:两次通信之间的间隔,单位 ms。
  6. 写寄存器命令:可选自动或 0x10。
  7. 离线读取优化:减少离线从机占用的通信时间。
  8. 与 PLC 画面同步:画面写入地址回写当前画面号;画面取自地址读取目标画面号。
  9. 从站:设置 PLC 数目、站号和 XD 系列地址范围。
  10. 预设字节序:设置整数、浮点数的数据排列。