FatWang

项目里用的是协议4,不带换行回车

按位批读规则

示例


在第5站从X040至X044读5个点的数据(消息等待时间设为100毫秒)假定X040与X043关且X041、X042与X044开)

有几个点要注意下:

  • 校验和只在[站号]到[位数]之间计算,计算方法是将计算区间所有的值相加,最后取后两位的ascii码:
    $$30+35+46+46+42+52+41+58+30+30+34+30+30+35=347$$
    则检验码为34,37
  • 消息等待时间可以在0到150毫秒之间设定(以10毫秒为增量)。用一位ASCII字符来设定其值(“0”到“F"),代表0H到FH(0到15)。当在1:n系统中使用485PC-IF时,必须设定消息等待为70毫秒或更长(7或更大)。如果在网络中可编程控制器的扫描时间是70毫秒或更长,消息等待时间须设定为最大扫描时间或更长。
  • 收到plc消息的第一位应为STX[02H],不然应该认为通信失败

相似的

按位批写规则

示例

  • 写入不需要等待plc读取寄存器值,所以不需要等待。另外接收到的数据第一位应为ACK[06H],不然应该认为通信失败

另附校验码生成程序:

void SumCheck(unsigned char *tMsg, unsigned char *sumcheck) {
    int sum = 0;
    int i;
    for (i = 1; i < strlen(tMsg); ++i) {
        sum += *(tMsg + i);
    }
    *(sumcheck + 1) = sum % 16 + \'0\';
    *(sumcheck) = (sum / 16) % 16 + \'0\';
}

分类:

技术点:

相关文章: