用ST语言写出三菱PLC的485通讯程序
时间: 2023-11-27 20:49:06 浏览: 358
以下是使用ST语言编写三菱PLC的485通讯程序的示例代码:
```
// 初始化串口通讯参数
COMINIT(COM1, BAUD9600, BIT8, PARITY_NONE, STOP1);
// 定义发送和接收缓冲区
unsigned char send_buf[16] := {0}; // 发送缓冲区
unsigned char recv_buf[16] := {0}; // 接收缓冲区
// 定义通讯命令
unsigned char cmd[8] := {0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x85, 0xF9}; // 读取PLC的D寄存器1的值
// 发送通讯命令
COMSEND(COM1, cmd, 8);
// 等待接收数据
WHILE COMRECV(COM1, recv_buf, 16) = 0 DO
// 接收数据超时,重新发送命令
COMSEND(COM1, cmd, 8);
END_WHILE
// 解析接收到的数据
unsigned short data := (recv_buf[3] << 8) | recv_buf[4]; // 读取D寄存器1的值
// 将读取到的数据存储到指定的变量中
D1 := data;
```
以上代码实现了读取PLC的D寄存器1的值,并将其存储到D1变量中。其中,COMINIT函数用于初始化串口通讯参数,COMSEND函数用于发送通讯命令,COMRECV函数用于等待接收数据,解析接收到的数据后,将其存储到指定的变量中。
阅读全文
相关推荐















