碰焊机触摸屏软件开发
1 軟件需求
人機界面為MCGS 10寸觸摸屏1062KW,接口為RS232/RS484/以太網,供電電源為24V。機觸摸屏的功能為機器人的基本狀態信息顯示和對機器人的控制及參數給定。
目前設計的小車分成兩欄共10格,需要將對應的觸摸屏大致分成相應的10大格,會在工藝上規定每個格子只能放哪幾類工件,然后在觸屏上每個格子上給出相應的型號,下拉菜單或者縮略圖等需要具體溝通,當來料小車停到位,工人在觸屏上選好對應的工件,開啟,觸屏跟機器人控制柜通信,機器人控制柜控制碰焊機進行對應的碰焊作業。
采用RS232讓觸摸屏和貝加萊控制器通訊,通訊線纜距離大約為2米。控制信息包括:使能、啟動、停止、急停、工件型號、槽位(1~10),數量,初始化(復位)。狀態顯示信息有機器人狀態(就緒,使能,運行,暫停),故障信息,工序信息等。
2 通訊接口開發
2.1 硬件連接
觸摸屏COM口RS485/RS232的通訊接口定義如下:
| RS485 A+ | RS485B- | RS232 RX | RS232 TX | GND |
| 7 | 8 | 2 | 3 | 5 |
RS232需要將貝加萊控制器的RX連接觸摸屏的3口,將控制器的TX連接至觸摸屏2口,GND連接至觸摸屏的5口。
2.2 通訊設備設置
RS232通訊設備采用通用串口父設備,子設備采用莫迪康ModbusRTU協議,添加以下設備窗口,如圖2所示。
圖2 添加通訊設備
?????? 通用串口父設備的屬性為:
串口端口號:RS232對應的是0-COM1,1-COM2對應的是RS485通訊
通訊波特率:11 - 57600bps
數據位:1 - 8位
停止位:0 - 1位
數據校驗位:0 – 無校驗
莫迪康ModbusRTU設備的屬性需要設置設備的地址,將從站地址設為1,該地址需要與控制器下面的地址相對應。
2.3 通訊協議定義
(1)讀取寄存器(功能碼:03)
觸摸屏請求指令格式為:
| 字節 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 含義 | 1 | 03 | ADDRH | ADDRL | NUMH | NUML | CRCL | CRCH |
| 地址 | 功能碼 | 待讀取參數首地址 | 指令數(參數個數1~125) | CRC校驗 | ||||
控制器響應指令格式為:
| 字節 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | ||
| 含義 | 1 | 03 | BYTECNT? | DATAH | DATAL | DATAH | DATAL | CRCL | CRCH |
| 地址 | 功能碼 | 響應字節數= 指令數*2 | DATA1 | DATA2 | CRC校驗 | ||||
例:觸摸屏請求讀取地址為101的參數的值,控制器返回值為5
觸摸屏請求:1 3 0 100 0 1 CRC
控制器響應:1??03??02??00??05 CRC
要讀取的狀態信息依次為:機器人狀態,故障信息
(2)寫乘法寄存器(功能碼 16)
觸摸屏向控制器連續寫入多個字節,客戶端發送數據格式為:
| 字節 | 0 | 1 | 2~3 | 4~5 | 6 | 7~8 | …… | ||
| 含義 | 1 | 16 | ADDR | NUM | BYTECNT? | DATA1 | DATAn | CRCL | CRCH |
| 地址 | 功能碼 | 首地址參數 | 指令數 (1~100) | 字節數 | 第1個數據 | 第n個數據 | CRC校驗 | ||
控制器響應返回數據格式為:
| 字節 | 0 | 1 | 2~3 | 4~5 | 6 | 7 |
| 含義 | 1 | 16 | ADDR | NUM | CRCL | CRCH |
| 地址 | 功能碼 | 寫入首地址 | 指令數 | CRC校驗 | ||
第1個槽位的地址為0020,共10個槽,依次寫入每一個槽位放置的物料的類型
和數量
觸摸屏發送:1 16 0 20 0 10 20 1 2 3 4 5 6 7 8 ……CRC
控制器返回:1??16??0??20??0 10 CRC
使能命令:
使能:地址為0001
啟動:地址為0002
停止:地址為0003
急停:地址為0004
發送啟動命令的數據為:
客戶端請求: 1 16? 0 2? 0 1? 2? 0 1 CRC
服務器響應: 1?16?? 0?2?? 0 1? CRC
(3)CRC校驗函數
cBuffer:計算CRC校驗碼的數組。
iBufLen:該數組的長度。
unsigned int CRC_Verify(unsigned char *cBuffer, unsigned int iBufLen)
{
??? unsigned int i, j;???????????????? //#define wPolynom 0xA001
??? unsigned int wCrc = 0xffff;
??? unsigned int wPolynom = 0xA001;
/*---------------------------------------------------------------------------------*/
??? for (i = 0; i < iBufLen; i++)
??? {
??????? wCrc ^= cBuffer[i];
??????? for (j = 0; j < 8; j++)
??????? {
??????????? if (wCrc &0x0001)
??????????? {?? wCrc = (wCrc >> 1) ^ wPolynom;? }
??????????? else
??????????? {? wCrc = wCrc >> 1;? }
???????? }
???? }
return wCrc;
}
總結
以上是生活随笔為你收集整理的碰焊机触摸屏软件开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4位拿到HCIE认证的同学都是这么学习的
- 下一篇: 指导思想——人不成熟的五大特征