tft每日頭條

 > 科技

 > 威綸觸摸屏宏指令函數說明

威綸觸摸屏宏指令函數說明

科技 更新时间:2024-09-28 11:34:30

在編寫宏指令時,我們基本都是調用威綸給我們提供的系統指令。

這些指令按功能作了細分,如下圖,約有11個分類。

前面小節我們以視頻教程的形式介紹了數學運算相關的函數。

發現每個分類下的函數非常多,所以我們這裡以圖文的形式介紹數據轉換分類下的全部函數。

每一個函數的介紹與使用都通過例程的形式,在編程軟件上測試運行。

大家可以在自己電腦打開編程軟件實踐,運行例程,查看效果。

遇到問題可以在平台提問,@我,一起交流。

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)1

數據轉換類函數共有14個,分别為

ASCII2DEC, DEC2ASCII,

ASCII2FLOAT, FLOAT2ASCII,

ASCII2HEX, HEX2ASCII,

BCD2BIN, BIN2BCD,

StringBin2DecAsc, StringDecAsc2Bin,

StringBin2HexAsc, StringHexAsc2Bin,

StringDecAsc2Float, StringFloat2DecAsc

在使用這些函數前,我們得知道一些知識。

十進制數由0,2,3,4,5,6,7,8,9組成,

十六進行數上面的0到9另加A,B,C,D,E,F組成。

BIN數據,為二進制數據,我們在編程時傳遞十或十六進制數,

觸摸屏會在後台轉換為對應的二進制數處理。

BCD碼,用四位二進制數表示一個十進制數,主要方便二進制與十進制間的轉換。

ASCII碼用于電腦顯示數字,英文,字符等信息,我們常用的數字,

大小寫字母,标點符号都有可以通過對應的數字表示,可以通過查表知道對應關系。

如查詢下圖ASCII表,知道字符‘A’可以用十進制66表示,

也可以用十六進制0X42表示。這些關系可以這小節的數據轉換分類下的函數實現互換。

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)2

1.ASCII2DEC。

此函數用于将ASCII格式字符轉換為十進制格式數字。

要注意的是我們十進制數隻有0到9個數字,所以我們傳遞的字符也隻能有這幾個字符。

我們可以在編輯器中使用下面代碼。

再添加數值輸入元素,如下圖設置後查看輸出結果。

macro_command main()

//使用方法1.可以隻轉換一個字符。

char c='5'

int result

//将字符‘5’轉換為十進制整數,結果存儲在result,result值為5.

//1表示轉換字符的個數,因為‘5’為一個字符,所以這裡傳遞1.

ASCII2DEC(c,result,1)

//SetData(result, "Local HMI", LW, 0, 1)

//使用方法2.可轉換多字符

char cc[3] = {'1', '2', '3'}

//這裡我們定義了字符數組CC,共3個元素,分别為cc[0],cc[1],cc[2]

//我們将cc[0]傳遞進去表示從元素0開始,傳遞3表示共轉換3個字符

//結果存儲在result中,result=123

ASCII2DEC(cc[0],result,3)

SetData(result, "Local HMI", LW, 0, 1)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)3

2.DEC2ASCII。

此函數與上邊的函數ASCII2DEC相反,将十進制格式數字轉換為ASCII字符。

我們可以在宏編輯界面複制下面代碼,

然後添加字符元件,進行如下圖兩步設置,查看運行結果。

macro_command main()

int nvalue =123

char cc[3]

//nValue=123有3個數字,所以我們定義了3個元件的數組cc來保存轉換結果。

//以面代碼表示存儲在字符數組cc第0個元素開始的3個元素裡。

//結果cc[0]='1',cc[1]='2',cc[2]='3'

DEC2ASCII(nValue,cc[0],3)

SetData(cc[0], "Local HMI", LW, 0, 3)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)4

3.ASCII2FLOAT。

此函數用于将ASICC字符轉換為浮點數。

要注意的是浮點數是由字符0到9加小數點'.'組成,所以隻支持字符’0‘到’9‘和'.'。

我們可以在宏編輯器内使用下面代碼,再添加數值元件,讀寫地址LW0,

格式如下圖設置為浮點數據,運行查看輸出結果。

macro_command main()

char c[3]={'1','.','2'}

float result

//下面代碼表示将c[0]開始的3個字符轉換為浮點數,result=1.2。

ASCII2FLOAT(c[0], result, 3)

SetData(result, "Local HMI", LW, 0, 1)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)5

4.FLOAT2ASCII

此函數與上邊的函數ASCII2FLOAT,将浮點數轉換為ASCII字符。

我們可以在宏編輯界面裡使用下面代碼,

然後添加字符元件,進行如下圖兩步設置,查看運行結果。

macro_command main()

float result =1.2

char c[3]

//将浮點數轉換為ASCII格式字符,結果為c[0]=‘1’, c[1]=‘.’, c[2]=‘2’

//下面代碼表示将結果存儲在c[0]元素開始的3個字符元素裡。

FLOAT2ASCII(result, c[0], 3)

SetData(c[0], "Local HMI", LW, 0, 3)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)4

5.ASCII2HEX。

此函數将ASCII字符轉換為16進制數。

要注意的是16進制數隻有’0'到‘9’和'A'到'F'字符(或小寫),其他字符無效。

我們可以在宏編輯器裡使用下面代碼,

再添加數值元件,設置其讀寫地址為LW0,如下圖設置其格式後,查看輸出結果。

macro_command main()

char c[3]={'1','F'}

int result

//将C[0]開始的2個字符轉換為16進制數,保存到result,result=0x1f.

ASCII2HEX(c[0],result,2)

SetData(result, "Local HMI", LW, 0, 1)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)7

6.HEX2ASCII。

此函數為上面函數ASCII2HEX的反向運算,将16進制數轉為ASCII字符。

我們可以在宏編輯界面使用下面代碼。

然後添加字符元件,進行如下圖兩步設置,查看運行結果。

macro_command main()

int value = 0x1f

char c[2]

//将數據value轉換為ASCII字符,保存在c[0]開始的2個字符裡。

//這裡0x1f的前綴0x表示16進制,轉換為十進制數為31

HEX2ASCII(value,c[0],2)

SetData(c[0], "Local HMI", LW, 0, 2)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)8

7.BCD2BIN 和 BIN2BCD。

這兩個函數為互逆運算,分别實現将BCD碼轉換為二進制碼,将二進制碼轉換為BCD碼。

在我們編寫宏指令時數據會以十進制數表示,如123。

或以16進制數據表示,如0X123。

BCD碼和二進制碼為軟件後台運算使用。

所以我們在使用這兩個函數時,也隻是傳遞十或十六進制數。

我們可以在宏編輯界面裡使用下面的代碼,

然後添加數值元件,設置讀寫地址為LW0,顯示格式16位BCD碼。

添加另一數值元件,設置讀寫地址為LW1,顯示格式為16位二進制碼。

顯示格式設置如下圖,模拟運行,可以查看宏指令輸出結果

macro_command main()

int value = 0XF

int result

BCD2BIN(value, result)

SetData(result, "Local HMI", LW, 1, 1)

BIN2BCD(result,value)

SetData(value, "Local HMI", LW, 0, 1)

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)9

8.StringBin2DecAsc。

函數StringBin2DecAsc将一個整數轉換為十進制字符串。

也就是轉換的結果字符隻有'0'到'9'這個十字符。

在宏編輯器使用下面的代碼。

然後添加字符元件,如下圖設置後,用于顯示運行結果。

macro_command main()

int value = 0XF

char c[10]

bool rst

//在注意定義的字符數據char c[],元素個數一定要足夠多,這裡定義10個元素來接收。

rst = StringBin2DecAsc(value, c[0])

//如果函數執行成功,則将結果顯示在控件上。

if(rst==true) then

SetData(c[0], "Local HMI", LW, 0, 4)

end if

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)4

9.StringDecAsc2Bin。

此函數與上邊函數StringBin2DecAsc相反,

用于将一個十進制格式的字符串轉換為一個整數。

同樣要注意的是十進制格式的字符串裡隻有'0' 到 '9'。

在宏編輯器裡,使用下面代碼。

再添加數值元件,顯示執行結果,元件讀寫地址設置如下圖。

macro_command main()

int result

char c[10] ="123"

bool rst

//将從c[0]開始的數字串轉換為一個整數,結果result=123.

//要注意的是如果char c[10] ="123c",則函數執行出錯,十進制裡沒有'c'字符。

rst = StringDecAsc2Bin(c[0], result)

if(rst == true)then

SetData(result, "Local HMI", LW, 0, 1)

end if

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)3

10.StringBin2HexAsc。

此函數用于将整數轉換為16進制格式字符。

十六進制字符裡隻有'0'到'9'和'A'到'F',所以轉換結果字符串裡隻有這些字符。

我們可以在宏編輯器使用下面的代碼。

然後添加一個字符元件,如下圖設置後,用于顯示運行結果。

macro_command main()

char c[10]

int result

bool rst

//将整數123轉換為十六進制格式字符,存儲在C[0]開始的字符串裡。

//要注意的是字符串長度一定夠長,不然函數執行出錯。

rst = StringBin2HexAsc(123, c[0])

if rst==true then

SetData(c[0], "Local HMI", LW, 0, 4)

end if

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)4

11.StringHexAsc2Bin。

與上面函數StringBin2HexAsc相反,此函數用于将16進制的字符串轉換為整數。

我們可以在宏編輯器裡使用下面代碼。

然後添加一個數值元素,如下圖,

設置其讀寫地址為LW0,格式為2進制,模拟運行查看結果。

macro_command main()

char c[10]="2F"

int result

bool rst

//函數将c[0]開始的字符串轉換為二進制整數。

//界面是二進制數以十進制格式顯示,我們可以添加數值顯示元件,

//設置其格式為二進制來查看結果,執行結果為101111

rst = StringHexAsc2Bin(c[0],result)

if rst==true then

SetData(result, "Local HMI", LW, 0, 1)

end if

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)13

12.StringFloat2DecAsc。

函數用于将浮點數據轉換為字符串。

我們可以在宏編輯器時使用下面函數。

再添加字符元件,如下圖設置其讀寫地址,模拟顯示執行結果。

macro_command main()

float value=1.23

char c[10]

bool rst

//函數将浮點數value轉換為字符串保存在c[0]開始的存儲器中。

//要注意的是用于存儲結果的字符數組要能足夠空間,不然函數出錯

rst = StringFloat2DecAsc(value, c[0])

if rst==true then

SetData(c[0], "Local HMI", LW, 0, 4)

end if

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)4

13.StringDecAsc2Float。

與上面的函數StringFloat2DecAsc相反,此函數用于将字符串轉換為浮點數。

要注意的是浮點數字符隻有'0’到‘9’和小數點‘.',不然函數執行失敗。

我們可以添加數值元件,設置讀寫地址為LW0,

再如下圖,設置其格式為浮點數,執行查看結果。

macro_command main()

float result

char c[10]="1.23"

bool rst

//将c[0]開始的字符串轉換為浮點數。

rst = StringDecAsc2Float(c[0],result)

if rst==true then

SetData(result, "Local HMI", LW, 0, 1)

end if

end macro_command

威綸觸摸屏宏指令函數說明(威綸通觸摸屏宏指令)5

數據轉換分類下的函數,共14個,上面就是全部函數的介紹。

可以在編輯軟件裡執行測試每個函數下的代碼,會有比較直觀的理解。

後面小節我們會介紹數據操作分類下的全部函數。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved