zhou1211
級(jí)別: 略有小成
精華主題: 1 篇
發(fā)帖數(shù)量: 205 個(gè)
工控威望: 362 點(diǎn)
下載積分: 1172 分
在線時(shí)間: 66(小時(shí))
注冊(cè)時(shí)間: 2013-11-04
最后登錄: 2024-09-18
查看zhou1211的 主題 / 回貼
12樓  發(fā)表于: 2021-01-17 09:41
程序是很簡(jiǎn)單,但到實(shí)際應(yīng)用的時(shí)候有不確定性,通信原理都是一樣,協(xié)議也只約定規(guī)則,這些規(guī)則無非就是限制
緊要
1. 數(shù)據(jù)幀的開始標(biāo)志
2. 數(shù)據(jù)長度;
3. 結(jié)束標(biāo)志;
4. 校驗(yàn)方式;
非緊要,在前面4個(gè)重點(diǎn)正確的情況下,后面的一般不會(huì)有錯(cuò)
5. 故障碼;
6. 最大長度

你的問題可能原因
1.  發(fā)送緩存區(qū)因相近間隔時(shí)間進(jìn)入過多的數(shù)據(jù)量,導(dǎo)致發(fā)送長度不支持,發(fā)送失敗;
2.  沒有檢測(cè)握手標(biāo)志(發(fā)送完成標(biāo)志,接收完成標(biāo)志),每個(gè)通訊功能塊都有一個(gè)Done 位(雙工只注意單個(gè)done),新手靠拉長收發(fā)時(shí)間,中手看標(biāo)志,老手看綜合狀態(tài);像485線,你發(fā)一幀數(shù)據(jù),必須等收到信息完成,或者確實(shí)超時(shí)才能發(fā)下一次詢問;
檢測(cè)的方法最直接是用串口調(diào)試工具去監(jiān)測(cè)收發(fā)數(shù)據(jù)的實(shí)際狀態(tài),這樣才能判斷錯(cuò)出在哪了,有時(shí)候你的數(shù)據(jù)沒問題,而通訊的對(duì)方可能有問題,比如,你CPU運(yùn)行速度1ms周期,而對(duì)方在處理不同數(shù)據(jù)時(shí)響應(yīng)時(shí)間不一樣,以前測(cè)試過一款微型伺服,詢問狀態(tài)響應(yīng)2ms,控制指令響應(yīng)時(shí)間很長,讀數(shù)組狀態(tài)的時(shí)候響應(yīng)時(shí)間也很長,所有經(jīng)常被程序認(rèn)為是發(fā)送超時(shí)
寫程序前先了解被通訊對(duì)象的素質(zhì)也很重要,先用串口工具測(cè)試各種你要用到指令,然后加快收發(fā)速度,去測(cè)試響應(yīng)極限,別一上去就干到極限,然后悶逼不知道怎么解決。當(dāng)確實(shí)遇到了問題,那么再回過同用通訊工具采樣你發(fā)和它發(fā)的狀態(tài)找原因
ronkang
倍加?偩
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 146 個(gè)
工控威望: 348 點(diǎn)
下載積分: 914 分
在線時(shí)間: 188(小時(shí))
注冊(cè)時(shí)間: 2008-06-24
最后登錄: 2024-12-19
查看ronkang的 主題 / 回貼
13樓  發(fā)表于: 2021-01-17 10:53
兄弟,我這200的plc按你說法編程太復(fù)雜了,
我看1200里面有一個(gè)說法是done置1后,必須在發(fā)一個(gè)空白pkw才可以下一次讀寫。
200smart確沒這說法,關(guān)鍵uss_protocol(v2.1)符號(hào)表沒有詳細(xì)介紹。
程序沒法進(jìn)行了,按理說uss沒這么復(fù)雜,多個(gè)uss_ctrl是此功能塊自己控制輪詢的。參數(shù)讀寫才需要編程輪詢。網(wǎng)上很多案例都是這么做的,別人都沒問題。見鬼了
zhou1211
級(jí)別: 略有小成
精華主題: 1 篇
發(fā)帖數(shù)量: 205 個(gè)
工控威望: 362 點(diǎn)
下載積分: 1172 分
在線時(shí)間: 66(小時(shí))
注冊(cè)時(shí)間: 2013-11-04
最后登錄: 2024-09-18
查看zhou1211的 主題 / 回貼
14樓  發(fā)表于: 2021-01-17 11:22
圖片:
所以說你根本看不懂我那個(gè)程序,那個(gè)程序不復(fù)雜,里面數(shù)據(jù)判斷占了大部分,真正收發(fā)指令只占了很小的一部分,你寫一個(gè)通訊程序也是一樣的,當(dāng)然,電機(jī)控制用固定功能塊做的,或者說你只需要固定控制方式,所以顯得簡(jiǎn)單;
我程序里面包含了通訊參數(shù)的修改,首先是修改了通訊默認(rèn)地址,再就是模仿modbus切換控制字寫對(duì)象的參數(shù),然后根據(jù)不同的控制模式解析對(duì)應(yīng)數(shù)據(jù)
你做通訊感覺才入門,上圖是對(duì)應(yīng)實(shí)現(xiàn)的功能
大致就是通訊建立,先讀出前排2組數(shù)據(jù),那2組如果和實(shí)際設(shè)備有出入則通過下面的寫操作修改掉,其余時(shí)間是在讀取右邊2列有效數(shù)據(jù),這個(gè)設(shè)備沒有修改軟件,所以得做通訊程序去修改報(bào)警范圍之類的參數(shù),不是每一個(gè)給你的設(shè)備都會(huì)給你配一個(gè)參數(shù)修改軟件,也不是每一個(gè)操作工都知道怎么去修改一個(gè)設(shè)備,尤其是第三方,那么你就必須在你的HMI上開放一個(gè)接口去方便修改
[ 此帖被zhou1211在2021-01-17 11:39重新編輯 ]
ronkang
倍加?偩
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 146 個(gè)
工控威望: 348 點(diǎn)
下載積分: 914 分
在線時(shí)間: 188(小時(shí))
注冊(cè)時(shí)間: 2008-06-24
最后登錄: 2024-12-19
查看ronkang的 主題 / 回貼
15樓  發(fā)表于: 2021-01-17 14:10
感謝樓上兄弟,感謝你熱心的幫助,F(xiàn)在問題找到了,就是USS_RPM_R這個(gè)指令的問題。讀浮點(diǎn)數(shù)就是會(huì)導(dǎo)致uss_ctrl報(bào)錯(cuò),甚至變頻器報(bào)警1910,用uss_rpm_w指令責(zé)一切正常。目前還不知道具體的原因。我再試試看能不能找到更多的問題。