jinweibao
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 94 點
下載積分: 552 分
在線時間: 1(小時)
注冊時間: 2015-05-30
最后登錄: 2016-01-28
查看jinweibao的 主題 / 回貼
樓主  發(fā)表于: 2015-08-31 21:14
本人使用 易語言 編寫上位機程序,自己調(diào)用windows com通訊API 寫了個三菱和com口通訊的dll,
但是使用時發(fā)現(xiàn)只能使用9600波特率通訊,如果在works2中更改波特率為115200后就可以使用這個波特率一直運行,但是一斷電就沒了,
我問了三菱官方,他們說速率自動調(diào)節(jié),是不可以修改的,
但是我記得曾經(jīng)修過深圳一家公司的工控系統(tǒng),他們的fx3u就是一直是115200通訊,而且斷電后再上電也是這個速率,請問這個是什么情況?
而且我用com口監(jiān)視后發(fā)現(xiàn)PLC先從D8116中獲取4字節(jié)數(shù)據(jù),然后根據(jù)一定的計算寫入D8118,然后將波特率更改為115200就可以通訊了,
但是查看了很多數(shù)據(jù)也無法推斷出具體算法,求問有沒有對這方面有了解的大神?
據(jù)我用軟件測試,我現(xiàn)在用9600波特率獲取D0-D12的數(shù)據(jù)發(fā)送到接受需要大約65ms,普通強制置位通訊發(fā)送到接受大約15ms左右(經(jīng)過自己最大能力優(yōu)化,多線程,代碼優(yōu)化都用上了。。。),而115200波特率讀取24位數(shù)據(jù)(D0-D12)只需5-6ms,差距太大了,幾十上百毫秒在軟件中實時監(jiān)控就有卡頓了(伺服控制),還不算其他的控制!求大神解決。。
xiakebiao
工控老人
級別: 網(wǎng)絡(luò)英雄

精華主題: 0
發(fā)帖數(shù)量: 1158 個
工控威望: 8697 點
下載積分: 96310 分
在線時間: 845(小時)
注冊時間: 2008-12-21
最后登錄: 2023-07-10
查看xiakebiao的 主題 / 回貼
1樓  發(fā)表于: 2015-09-01 08:36
易語言本身就是解釋性程序,比BASIC的層次還低,不適合實時控制的數(shù)據(jù)采集。