图片:
上图是变频器的通讯帧,下图是别人写的和单片机通讯宏
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//主程序
macro_command main()
bool on = true, off = false
//PCB I点状态
unsigned short PCB_I
//PCB O点状态
unsigned short PCB_O
//接收长度
unsigned short inLength
//接收CRC校验结果
unsigned char inCRC
//通讯计次
unsigned int comTime
//通讯帧头
outArr[0] = 0x80
outArr[1] = 0xEB
outArr[2] = 0x90
outArr[3] = 0x30
//获取PCB O点控制的状态
GetData(PCB_O,"Local HMI",LW,11,1)
LOBYTE(PCB_O,outArr[4])
这一行只是写了个低八位到数据1,如果我是和变频器通讯需要写高八位和低八位要怎么写,怎么定义变量呢?outArr[5] = 0x00
//CRC
outArr[6] = PCB_CRC(5,0)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下行帧结构,及说明
设备地址 同步码1 同步码2 控制字 数据1 数据2 校验码
80H EBH 90H 30H 00H 00H CRC
设备地址: 80 固定地址
同步码:EB 90 上位机与单片机同步字段
控制字:30 指执行这个类型的命令
数据2:无意义,默认填00H
数据1:每个bit对应控制单片机上的继电器吸合
校验码:8位的查表校验
[ 此帖被工控菜鸟在2020-01-01 18:38重新编辑 ]