999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Kinco觸摸屏與DanFoss控制器之間的自定義CAN通訊*

2021-07-12 00:47:46陳永輝郝長峰
現代機械 2021年3期
關鍵詞:設置

陳永輝,郝長峰,張 峰,劉 栓

(1.河南省高遠公路養護技術有限公司,河南 新鄉 453000;2.公路養護技術裝備國家工程實驗室,河南 新鄉 453000;3.河南省高等級公路檢測與養護技術重點實驗室,河南 新鄉 453000)

0 引言

隨著信息技術的不斷發展,工業觸摸屏的價格在不斷降低。觸摸屏與CAN總線的集成使得觸摸屏在工程機械中的應用更加普及。尤其是通用組態型工業觸摸屏不僅具有成本優勢,而且在圖形界面的設計上更加方便。比如采用IFM控制器與IFM觸摸屏配合使用,雖然有成熟的基于Can Open的EDS可以應用,但是圖形界面卻要技術人員自己編程實現[2]。同樣如DanFoss控制器雖然可以與DanFoss觸摸屏直接進行硬件組態而不必考慮具體通訊問題,但是同樣圖形界面也是需要技術人員通過編程而不是通過組態的方式來實現。而采用通用組態型觸摸屏則很好地解決了其中比較繁瑣的圖形界面設計問題,但是與控制器之間的通訊問題則往往需要技術人員通過自行編程來實現。由于通用觸摸屏廠商通常并不對用戶開放通訊代碼,因此使其應用受到相應的限制。本文采用重新生成底層驅動的方式實現自定義CAN通訊協議并成功實現了通用觸摸屏與控制器之間的CAN通訊。

1 主要功能及實現

本文采用Kinco MT4414T觸摸屏和DanFoss MC050控制器進行通訊。Kinco MT4414TE觸摸屏具有7英寸有效顯示面積,帶有兩個串行口,一個CAN總線接口和一個以太網接口,采用HMIWare軟件進行組態和編程。DanFoss MC050控制器具有兩個CAN總線接口,采用PLUS+1 GUIDE軟件進行編程。首先對觸摸屏進行組態并設置CAN總線。如圖1所示在通訊連接選項中選擇現場總線。

圖1 觸摸屏設置CAN總線示意圖

在現場總線設置中選擇 CAN CUSTOM PROTOCOL波特率根據MC050控制器的CAN參數做相同設置,如圖2。

圖2 CAN總線的波特率設置

對觸摸屏進行圖形組態后在Kinco軟件安裝目錄里找到builddriver文件夾并打開fbserver文件,自定義CAN通訊協議驅動代碼需要在該文件內進行編程實現。如圖3。

圖3 選擇CAN通訊協議驅動代碼

1.1 觸摸屏發送數據

觸摸屏作為一款在工業以及工程機械中常用的人機交互裝置通常用來顯示設備信息和輸入相關控制數據。在輸入數據的時候輸入一個數據大約需要3~5 s,因此從觸摸屏向控制器發送數據的實時性要求并不是特別高[3]。但是由于CAN總線是典型的多主總線,通常要聯接多個控制器進行實時數據共享,為了提高系統的實時性和總線帶載能力,通訊協議要盡量節約總線負載。同時考慮到觸摸屏要實時顯示大量控制器信息,那么向控制器發送數據報文要盡量簡潔。

發送數據工作原理是在觸摸屏通電啟動后首先設定CAN通訊程序循環周期,并讀取所有待發送數據的初值。在后續的每個循環周期中讀取每個待發數據的實時值,并與上次循環所讀取的數值進行比較,如果本次循環所讀取的待發數據實時值與上次循環所讀取的實時值不同,則認為該值是通過觸摸屏被輸入或修改的數據。通過代碼對該數據進行打包并發送到控制器。

程序框圖4如下:

圖4 程序框圖

代碼如下:

void Init(CAN_PORT CanPort) //程序初始化

{

Set_Cycle(50); //設置循環處理時間50ms

pCANPort = CanPort;

CopyFromLW(8400,Buf,70); //復制觸摸屏內存LW8400開始的70個字節數據到緩沖區Buf

memcpy(ReadBuf1,Buf,70); //通過內存復制把字節數據轉換成16位數據

}

void main_process(CO_Data* d,UNS32 id)//循環處理程序

{

unsigned short i;

Message Msg;

CopyFromLW(8400,Buf,70); //重新讀取觸摸屏內存數據

memcpy(ReadBuf2,Buf,70);

for(i=0;i<36;i++)

{

if(ReadBuf1[i]!=ReadBuf2[i]) //與上次讀取的內存數據進行比較當數據發生改變后打包發送

{

ReadBuf1[i]=ReadBuf2[i];//更新原數據以備下次循環對比使用

Msg.cob_id.w=0x182; //觸摸屏發送數據采用固定節點號

Msg.rtr=0;

Msg.len=3; //數據長度固定為三個字節

Msg.data[0]=i;

Msg.data[1]= Buf[i*2];

Msg.data[2]= Buf[i*2+1];

Send_Msg( pCANPort,&Msg,0);

}

}

}

1.2 控制器接收數據

DanFoss MC050控制器循環接收觸摸屏發送過來的CAN數據幀,該數據幀是以固定節點號發送。包含3個字節數據,第一個字節數據作為索引字節表示后續的兩個數據字節所對應的控制器參數,后續兩個字節代表所對應的參數數值。程序流程圖如圖5。

圖5 控制器接收數據流程圖

PLUS+1GUIDE是一款圖形化編程軟件,具有簡潔易懂等特點。針對上述流程圖編程如圖6。

圖6 控制器接收數據編程示意圖

在程序中設置MC050控制器始終接收觸摸屏發送的以0X182為節點號的CAN總線數據幀,數據長度為3個字節。并把數據幀中最后兩個字節數據封裝成16位無符號整型數據。

如圖7所示,設置所接受的數據索引號為9。當接收到索引號為9的數據時,首先讀取控制器內部相應存儲器數值與接收到的數值進行比較。當所接受的數據與控制器中所存儲的數據數值不相等時,將所接收的數據存儲到相應的存儲器中,同時輸出到MC050數據總線供后續程序使用。

圖7 設置接受數據的索引號

1.3 控制器發送數據

鑒于MC050控制器所發送到觸摸屏的數據量比較多,為了盡量節約總線帶寬、降低總線負載并充分利用每個所要發送的數據幀,對每個待發數據幀單獨分配一個節點號,并盡量使每個待發數據幀的8個數據字節保持填滿狀態。

針對圖8編程如圖9圖10,設置每個數據幀循環發送周期為400 ms,每幀8個數據字節。

圖8 控制器發送數據編程框圖

圖9 控制器發送數據流程圖

圖10 設置發送數據的索引號

發送數據,設置該幀CAN ID為0X203和非擴展幀并把每個待發的16位數據分解為字節數據輸入到幀數組中,使每個幀數據包含8個字節數據。

1.4 觸摸屏接收數據

Kinco MT4414T觸摸屏接收MC050控制器發送過來的所有以0X200為起始CAN ID的數據幀,并以CAN ID為地址索引把數據寫入到對應的內部存儲器中。程序代碼如下:

void MsgDispatch(CO_Data* d,Message *m)

{

unsigned short Temp;

Message msg;

memcpy(&msg,m,sizeof(Message));

Temp=8000+(msg.cob_id.w-0x200)*4;//以接收到數據幀的節點號作為索引存放接收到的數據

CopyToLW(Temp,msg.data,8);

}

2 編譯觸摸屏程序并生成驅動文件

fbserver程序編寫并保存后重新打開圖3文件夾,并運行該文件夾內的build批處理程序。build程序運行后將對fbserver文件進行編譯并生成CAN CUSTOM.so 和Can custom.ge兩個驅動文件,并自動保存在Kinco組態軟件安裝目錄lib文件夾下的fieldbus driver目錄中。對觸摸屏組態程序進行全部編譯并下載到觸摸屏中進行通電測試。MC050程序通過PLUS+1GUIDE軟件編譯后采用PLUS+1Server Tool軟件下載并監控。在MC050控制器以250 k波特率400 ms周期發送70個16位數據情況下采用PLUS+1Server Tool軟件監控測試總線負載率達到9%。為后續加載其他CAN通訊裝置預留了足夠的通訊閾度。

3 結論

本文以Kinco MT4414TE觸摸屏和DanFoss MC050控制器為研究對象,分析了該觸摸屏和控制器的CAN通訊特點,并通過重新生成底層驅動的方式設計了自定義CAN通訊協議。該通訊協議充分利用了CAN總線的多主特性對通訊帶寬進行了充分的壓縮,有效地降低了總線負載[4]。并在MOH半柔性攤鋪機上經過實際應用,取得了較好的使用效果和經濟效益。

猜你喜歡
設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
船舶防火結構及設置的缺陷與整改
水上消防(2020年5期)2020-12-14 07:16:18
中外醫學專業與專科設置對比分析及啟示
特殊場景下列控等級轉換的設置方案
7招教你手動設置參數
動車段(所)股道有效長設置研究
我國中小學將設置人工智能相關課程
玩具世界(2017年9期)2017-11-24 05:17:29
吃紙的妖怪
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 久久精品最新免费国产成人| 亚洲三级影院| 天堂在线视频精品| 中文精品久久久久国产网址| 高h视频在线| 国产成人精品视频一区视频二区| 国产一区二区丝袜高跟鞋| 99久久亚洲精品影院| 成人第一页| 亚洲人成影院午夜网站| 国产福利一区在线| 日韩无码黄色网站| 高清免费毛片| 免费网站成人亚洲| 亚洲综合色区在线播放2019| 久久特级毛片| 波多野结衣无码视频在线观看| 久久精品丝袜| 精品99在线观看| 欧美a在线| 自拍中文字幕| 久久久久亚洲精品无码网站| 特黄日韩免费一区二区三区| 欧美影院久久| 精品国产欧美精品v| 亚洲天堂伊人| 日本人又色又爽的视频| 免费看av在线网站网址| 欧美精品xx| 欧美成人aⅴ| 免费a在线观看播放| 色妞永久免费视频| 欧美日韩免费观看| 真实国产精品vr专区| 精品精品国产高清A毛片| 久久久久88色偷偷| 狠狠色综合久久狠狠色综合| 国产美女在线免费观看| 国产成人免费| 亚洲人成色在线观看| 国产丝袜一区二区三区视频免下载| 老色鬼久久亚洲AV综合| 久久国产精品嫖妓| 日韩精品成人在线| 日韩毛片基地| 国产69精品久久久久孕妇大杂乱| 久久99国产综合精品女同| 国产喷水视频| 国产一级毛片yw| 97视频免费在线观看| h视频在线播放| 中文字幕色在线| 国产亚洲成AⅤ人片在线观看| 日韩成人高清无码| 亚洲Av激情网五月天| 久久精品视频一| 久久精品国产精品国产一区| 亚洲婷婷在线视频| 国产亚洲欧美在线专区| 精品国产香蕉在线播出| 国产香蕉国产精品偷在线观看| 中文字幕乱码中文乱码51精品| 亚洲高清无码精品| 97精品伊人久久大香线蕉| 国产区在线观看视频| 亚洲国产亚洲综合在线尤物| 久久黄色一级片| 无码电影在线观看| 亚洲精品第一页不卡| 久久一本精品久久久ー99| 国产美女一级毛片| 久久精品日日躁夜夜躁欧美| 精品一区二区三区自慰喷水| 九九热精品在线视频| 永久免费无码日韩视频| 国产福利在线免费观看| 91小视频在线观看| 青青久视频| 免费日韩在线视频| 五月天久久婷婷| 精品国产中文一级毛片在线看| 国产午夜福利亚洲第一|