工業現場在使用觸摸屏的時候,與第三方控制器進行通信連接的時候,一般都是使用成熟的通信協議進行通信連接。而這些協議的實現過程,觸摸屏廠商也已經在編程環境中進行了封裝集成,對于使用的工程師來說,通信的數據交換過程我們無需要關心。僅需要設置配置好控制器(PLC)的品牌,型號系列及基本的通信通道就可以了。當然,這是觸摸屏通信的常規使用方法,這里就使用自定義協議如何實現觸摸屏與控制器(如,單片機)的通信方法,分享給大家。以下通信測試方法除電腦外無需任何硬件,感興趣的話可以依照以下步驟還原測試過程。
工具及環境準備
在開始測試前,我們需要準備以下工具及軟件。
- 觸摸屏編程軟件:臺達DOPSoft 2.00.07
- 虛擬串口:Virtual Serial Port Driver
- 串口助手調試工具:stc-isp-15xx-v6.86v

DOPSoft 2.00.07

Virtual Serial Port Driver

stc-isp-15xx-v6.86v
虛擬串口
打開“Virtual Serial Port Driver”軟件,添加COM1、COM2兩個串口。添加完成后,如下所示;

串口助手設置
打開串口助手軟件(stc-isp-15xx-v6.86v)。在串口助手的串口號中設置為COM1,9600,8,n,1。此處設置為COM1后,觸摸屏中就只能配置為COM2。其必須與虛擬串口設置的串口號對應。

到此,就完成了測試環境的搭建。以下開始觸摸屏部分的配置。
觸摸屏設置
觸摸屏設置為本次測試的核心。
STEP1
打開“DOPSoft 2.00.07”軟件,并新建工程。

STEP2
在通信端口配置頁面,按照如下配置通信端口。這里以觸摸屏的COM2作為此處測試的連接端口,故需要將觸摸屏的COM2的“連接“復選框取消選中。這樣才可以將其用作自定義通信方式使用。

SETP3
在畫面編輯頁面,按照下圖所示,設置10個數值輸入框。并將其地址設置為觸摸屏內部存儲區域的$0-$10。

雙擊數值輸入框,彈出數值輸入框的配置對話框,如下所示。

在寫入地址對話框的后側,點擊“…”,彈出輸入對話框。將連線名稱設置為內部存儲區域(Internal Memory)。再將原件地址設置為“0”。

依照以上方法,將其他數值輸入框設置到地址1-10.
STEP4
設置畫面運行過程中的腳本程序。
選中畫面,在右側的屬性欄,選擇“畫面Cycle宏”。

彈出觸摸屏腳本編輯對話框,點擊下圖所示按鈕,打開腳本程序代碼編寫向導對話框。

在腳本程序代碼編寫向導對話框中,選擇“命令”-“通信”-選擇命令。配置完成代碼參數后,選擇“更新宏”,完成代碼的添加。

代碼添加完成后,如下圖所示。

$M0 = INITCOM(1, 0, 1, 0, 0, 6, 0)//初始化端口
SELECTCOM(1)//設置觸摸屏通信端口為2號端口
$M1 = PUTCHARS($0, 20, 3000)//發送觸摸屏內部$0開始的20個連續地址數據
Delay(300)//延時
$M0 = 0//清除端口初始化標志
$M1 = 0//清除數據發送完成標志
CLEARCOMBUFFER(1, 1)//清除串口緩存
STEP5
啟動觸摸屏在線仿真。彈出如下所示的對話框,按照如圖所示的方式配置。


STEP6
按照地址,從上到下設置為1到10.

STEP7
打開串口助手,可以看到在串口助手的接收區域,已經接收到觸摸屏在線仿真發送出來的數據,且數據中可以看到有1到10(串口助手配置為16進制顯示模式,其中16進制的A即為十進制的10)。

STEP8
在觸摸屏在線仿真頁面,將第一個數據改為9999。

再次查看串口助手中接收到的數據,其中第一個數據已經變為0F 27.

為了驗證數據的正確性,打開電腦的計算器工具,將其設置為程序員模式。選擇16進制輸入模式。輸入0F27,可以看到轉換為十進制后數據為3879,這與觸摸屏輸入的數據9999無法對應。這是什么地方錯了嗎?其實不是。這只是數據的高低字節交換了,這在通信數據傳輸處理的時候需要特別注意。初次進行串口通信調試,很多都被這個給折騰過。

在計數器模式下,輸入270F。可以看到其轉換后的十進制數據為9999.與設置的輸入數據一致。

自此,使用觸摸屏進行串口自定義協議通信的測試就已經完成。
(轉載請注明來源函控自動化工程師頭條號)