13771165220
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 322 個(gè)
工控威望: 552 點(diǎn)
下載積分: 1598 分
在線時(shí)間: 85(小時(shí))
注冊(cè)時(shí)間: 2017-11-27
最后登錄: 2024-08-23
查看13771165220的 主題 / 回貼
樓主  發(fā)表于: 2021-08-24 19:48
比如發(fā)送的數(shù)據(jù)是ASC碼     #1,0,30000,1000,AB
比如這串?dāng)?shù)字意思是  
#:打頭字母
1:站號(hào)
0:該站電機(jī)號(hào)
30000:電機(jī)定位地址
1000:電機(jī)定位速度
AB:校驗(yàn)碼
其中的”,“是間隔符號(hào)也是一個(gè)ASC碼
返回?cái)?shù)據(jù)先不管。
現(xiàn)在有這樣的問(wèn)題,我需要在觸摸屏控制定位地址和定位速度。
但是如果我速度輸入3000的話就比原來(lái)的30000少一個(gè)ASC字符,這樣包括后面發(fā)送的指令數(shù)據(jù)地址都相當(dāng)于左移了一位而且和校驗(yàn)都不一樣了。
個(gè)人感覺(jué)還需去判斷輸入的數(shù)據(jù)轉(zhuǎn)為ASC后占幾個(gè)字符,感覺(jué)處理起來(lái)后續(xù)就比較麻煩。就算讓人家直接輸入ASC當(dāng)數(shù)據(jù)也是比較麻煩。有誰(shuí)有這方面的經(jīng)驗(yàn)分享一下,大概思路也可以。
萬(wàn)分感激。
菜鳥(niǎo)入行
級(jí)別: 論壇先鋒

精華主題: 0
發(fā)帖數(shù)量: 1381 個(gè)
工控威望: 1557 點(diǎn)
下載積分: 3686 分
在線時(shí)間: 177(小時(shí))
注冊(cè)時(shí)間: 2017-09-01
最后登錄: 2024-06-11
查看菜鳥(niǎo)入行的 主題 / 回貼
1樓  發(fā)表于: 2021-08-24 21:27
得做一個(gè)很復(fù)雜的指令,尋找不同的逗號(hào),把逗號(hào)之間的數(shù)據(jù)提出來(lái),再轉(zhuǎn)換ASC碼,感覺(jué)好難的樣子。

你這個(gè)儀表能支持其他方式不,比如MODBUS,這樣省事多了
打個(gè)醬油,懂的不多
水平有限,能幫則幫
互相幫助,共同進(jìn)步
13771165220
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 322 個(gè)
工控威望: 552 點(diǎn)
下載積分: 1598 分
在線時(shí)間: 85(小時(shí))
注冊(cè)時(shí)間: 2017-11-27
最后登錄: 2024-08-23
查看13771165220的 主題 / 回貼
2樓  發(fā)表于: 2021-08-24 21:40
引用
引用第1樓菜鳥(niǎo)入行于2021-08-24 21:27發(fā)表的  :
得做一個(gè)很復(fù)雜的指令,尋找不同的逗號(hào),把逗號(hào)之間的數(shù)據(jù)提出來(lái),再轉(zhuǎn)換ASC碼,感覺(jué)好難的樣子。

你這個(gè)儀表能支持其他方式不,比如MODBUS,這樣省事多了


主要是需要判斷出輸入數(shù)據(jù)的長(zhǎng)度,然后在把后續(xù)的數(shù)據(jù),放到發(fā)送對(duì)應(yīng)的地址里去,倒騰起來(lái)比較費(fèi)事。

項(xiàng)目是需要測(cè)試20路步進(jìn)電機(jī)性能,需要輸入脈沖數(shù)和速度。正反轉(zhuǎn)等,電壓還要36V以內(nèi)。比較麻煩,網(wǎng)上就找到一款4路485通信板。就是沒(méi)有通用協(xié)議的,只有它自己的協(xié)議格式。
目前只能無(wú)協(xié)議自己換算。

正在找MODBUS協(xié)議支持的相關(guān)產(chǎn)品。
感謝您的建議。
楓落云端
施主,腳抬一下
級(jí)別: 略有小成

精華主題: 0
發(fā)帖數(shù)量: 341 個(gè)
工控威望: 465 點(diǎn)
下載積分: 1595 分
在線時(shí)間: 409(小時(shí))
注冊(cè)時(shí)間: 2017-10-10
最后登錄: 2024-08-05
查看楓落云端的 主題 / 回貼
3樓  發(fā)表于: 2021-08-25 13:02
方法1:
觸摸屏輸入為數(shù)字時(shí),PLC把數(shù)字加一個(gè)很大的值,比如每次最大也就5位數(shù),先把 數(shù)字+100000,之后再用DBINDA轉(zhuǎn)為字符串,再用RIGHT截取5位字符串。(不管你輸入的是幾位,每次都可以保證截取到5位)

方法2:
觸摸屏輸入為字符型數(shù)據(jù)時(shí),PLC直接用指令LEN檢測(cè)該字符串位多少位,再相應(yīng)補(bǔ)字符'0'或者補(bǔ)空格,用CONCAT指令連接字符。
樓主留言:
大神,牛啊。我照你說(shuō)的挨個(gè)指令試試,好多指令都沒(méi)用過(guò)。第一種覺(jué)得可行,第二種有點(diǎn)小麻煩,輸入123,1到最低位去了。
aaaa華華
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 120 個(gè)
工控威望: 151 點(diǎn)
下載積分: 5393 分
在線時(shí)間: 14(小時(shí))
注冊(cè)時(shí)間: 2021-05-23
最后登錄: 2023-12-18
查看aaaa華華的 主題 / 回貼
4樓  發(fā)表于: 2021-08-25 14:09
引用
引用第1樓菜鳥(niǎo)入行于2021-08-24 21:27發(fā)表的  :
得做一個(gè)很復(fù)雜的指令,尋找不同的逗號(hào),把逗號(hào)之間的數(shù)據(jù)提出來(lái),再轉(zhuǎn)換ASC碼,感覺(jué)好難的樣子。

你這個(gè)儀表能支持其他方式不,比如MODBUS,這樣省事多了

這位老哥說(shuō)的對(duì),看能不能MODBUS通訊,能MODBUS通訊要省事很多,再轉(zhuǎn)ASC碼很麻煩
樓主留言:
很難找到類似產(chǎn)品,主要是有電壓要求。多數(shù)是24V的。
打個(gè)醬油,懂的不多
水平有限,能幫則幫
互相幫助,共同進(jìn)步
gxtmdb82164
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 718 個(gè)
工控威望: 1096 點(diǎn)
下載積分: 284 分
在線時(shí)間: 569(小時(shí))
注冊(cè)時(shí)間: 2019-09-22
最后登錄: 2024-09-19
查看gxtmdb82164的 主題 / 回貼
5樓  發(fā)表于: 2021-08-25 15:26
前導(dǎo)0不就行了,非字典化通信協(xié)議里面,字段定長(zhǎng)是最基本的要求
樓主留言:
是的,用PC測(cè)試了一下,前導(dǎo)0可以的,F(xiàn)在思路固定發(fā)送8個(gè)字符當(dāng)數(shù)據(jù)。不足前填0.