用单片机作主站,使用编程口通讯协议,用PLC编程口或232BD都可以的;
通讯协议:
读PLC内存: STX E00 addrs bytes ETX SUM
写PLC内存: STX E10 addrs bytes data1...datan ETX SUM
强制位开: STX E7 addrs ETX SUM
强制位关: STX E8 addrs ETX SUM
STX 16进制ASCII码0x02
ETX 16进制ASCII码0x03
addrs 地址16位地址分别转换成ASCII码,
bytws 字节数(一次最多可读写64个字节)转换成ASCII码
SUM 数据和除STX与SUM本身外的所有数据和取最低8位转换成ASCII码。
D区地址0x4000+D*2;如读D0连续4个数据寄存器:
单片机发送:0x2 0x45 0x30 0x30 0x34 0x30 0x30 0x30 0x30 0x38 0x3 0x44 0x34;
协议二:
写 STX E10 1400 bytes (8100+words) bits daddr1...daddrn baddr1...baddrn ETX SUM;
PLC正确响应: 6(ACK)
读: STX E00 1790 bytes ETX SUM;
PLC正确响应按上面写入的 daddr1...daddrn数据个数是(words),addr1...baddrn位数是(bitds)返回数据;前面的daddr是数据寄存器地址,按照写入的先后顺序返回,紧跟数据寄存器数据后是位数据,也以字节形式返回,第一个位地址数据排列在数据寄存器数据后的第一个字节的第0位以此类推,不够一个字节,则以0填充。