工控菜鳥
菜鳥一只
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 954 個
工控威望: 1131 點
下載積分: 13860 分
在線時間: 295(小時)
注冊時間: 2017-04-12
最后登錄: 2024-12-18
查看工控菜鳥的 主題 / 回貼
樓主  發(fā)表于: 2020-01-01 18:29
圖片:
上圖是變頻器的通訊幀,下圖是別人寫的和單片機通訊宏
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//主程序
macro_command main()
bool on = true, off = false
//PCB I點狀態(tài)
unsigned short PCB_I
//PCB O點狀態(tài)
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點控制的狀態(tài)
GetData(PCB_O,"Local HMI",LW,11,1)
LOBYTE(PCB_O,outArr[4])                       這一行只是寫了個低八位到數(shù)據(jù)1,如果我是和變頻器通訊需要寫高八位和低八位要怎么寫,怎么定義變量呢?
outArr[5] = 0x00
//CRC
outArr[6] = PCB_CRC(5,0)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下行幀結構,及說明
設備地址    同步碼1    同步碼2    控制字    數(shù)據(jù)1    數(shù)據(jù)2    校驗碼
80H       EBH           90H        30H           00H          00H          CRC
設備地址: 80 固定地址
同步碼:EB 90 上位機與單片機同步字段
控制字:30 指執(zhí)行這個類型的命令
數(shù)據(jù)2:無意義,默認填00H
數(shù)據(jù)1:每個bit對應控制單片機上的繼電器吸合
校驗碼:8位的查表校驗
[ 此帖被工控菜鳥在2020-01-01 18:38重新編輯 ]
工控菜鳥
菜鳥一只
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 954 個
工控威望: 1131 點
下載積分: 13860 分
在線時間: 295(小時)
注冊時間: 2017-04-12
最后登錄: 2024-12-18
查看工控菜鳥的 主題 / 回貼
1樓  發(fā)表于: 2020-01-01 19:16
大神都過節(jié)去了,如果我用LOBYTE 和HIBYTE函數(shù)拆分數(shù)據(jù)是不是可以實現(xiàn),明天試下
夢雨天涯
微信hui530527   &
級別: 網絡英雄
精華主題: 0
發(fā)帖數(shù)量: 4319 個
工控威望: 7696 點
下載積分: 15346 分
在線時間: 2958(小時)
注冊時間: 2016-10-31
最后登錄: 2024-12-21
查看夢雨天涯的 主題 / 回貼
2樓  發(fā)表于: 2020-01-07 21:20
引用
引用第1樓工控菜鳥于2020-01-01 19:16發(fā)表的  :
大神都過節(jié)去了,如果我用LOBYTE 和HIBYTE函數(shù)拆分數(shù)據(jù)是不是可以實現(xiàn),明天試下

試過了嗎
微信hui530527      b站賬號,非標自動化譚工
請不要隨意加我,不會隨便通過。QQ群942493953
工控菜鳥
菜鳥一只
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 954 個
工控威望: 1131 點
下載積分: 13860 分
在線時間: 295(小時)
注冊時間: 2017-04-12
最后登錄: 2024-12-18
查看工控菜鳥的 主題 / 回貼
3樓  發(fā)表于: 2020-01-14 23:14
試過了,我已經做出來了