圖片:
上圖是變頻器的通訊幀,下圖是別人寫(xiě)的和單片機通訊宏
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//主程序
macro_command main()
bool on = true, off = false
//PCB I點(diǎn)狀態(tài)
unsigned short PCB_I
//PCB O點(diǎn)狀態(tài)
unsigned short PCB_O
//接收長(cháng)度
unsigned short inLength
//接收CRC校驗結果
unsigned char inCRC
//通訊計次
unsigned int comTime
//通訊幀頭
outArr[0] = 0x80
outArr[1] = 0xEB
outArr[2] = 0x90
outArr[3] = 0x30
//獲取PCB O點(diǎn)控制的狀態(tài)
GetData(PCB_O,"Local HMI",LW,11,1)
LOBYTE(PCB_O,outArr[4])
這一行只是寫(xiě)了個(gè)低八位到數據1,如果我是和變頻器通訊需要寫(xiě)高八位和低八位要怎么寫(xiě),怎么定義變量呢?outArr[5] = 0x00
//CRC
outArr[6] = PCB_CRC(5,0)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下行幀結構,及說(shuō)明
設備地址 同步碼1 同步碼2 控制字 數據1 數據2 校驗碼
80H EBH 90H 30H 00H 00H CRC
設備地址: 80 固定地址
同步碼:EB 90 上位機與單片機同步字段
控制字:30 指執行這個(gè)類(lèi)型的命令
數據2:無(wú)意義,默認填00H
數據1:每個(gè)bit對應控制單片機上的繼電器吸合
校驗碼:8位的查表校驗
[ 此帖被工控菜鳥(niǎo)在2020-01-01 18:38重新編輯 ]