jinweibao
級別: 正式會員
|
本人使用 易語言 編寫上位機程序,自己調用windows com通訊API 寫了個三菱和com口通訊的dll, 但是使用時發(fā)現(xiàn)只能使用9600波特率通訊,如果在works2中更改波特率為115200后就可以使用這個波特率一直運行,但是一斷電就沒了, 我問了三菱官方,他們說速率自動調節(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)控就有卡頓了(伺服控制),還不算其他的控制!求大神解決!!! |
---|---|
|
mythic
mythic
級別: 略有小成
|
當初有監(jiān)控過,但是當時主要是在尋找密碼,所以沒關注波特率 而且一開始就從PLC讀入一大堆數(shù)據(jù),看著頭大 |
---|---|
|
xiakebiao
工控老人
級別: 網(wǎng)絡英雄
|
易語言本身就是解釋性程序,比BASIC的層次還低,不適合實時控制的數(shù)據(jù)采集。 |
---|---|
|
jinweibao
級別: 正式會員
|
VB等更是算了吧,自帶的comm組件一個置位通訊來回都要幾十毫秒,如果是調用API,用什么編程軟件都是一樣, 再說了,一個上位機控制程序用C語言?你們見過哪家的機械電腦控制系統(tǒng)是用C的?你用C寫個窗口要多長時間?windows的消息處理你又要寫多長時間? 和編程軟件沒有關系,關系在于如何提升通訊速率是根本,電腦程序再慢都是微秒級,一個置位通訊就幾十毫秒,你就是用機器語言寫程序也沒用 |
---|---|
|
jinweibao
級別: 正式會員
|
沒辦法了,找了個折中方法,啟動程序調用gppw軟件,然后通過消息后臺控制gppw將波特率設定為115200,然后程序再開始初始化通訊 |
---|---|
|
hawson
QQ:1056748134
級別: 論壇先鋒
|
確實有點意思,我看看幾天能搞了出來 |
|
---|---|---|
|
hawson
QQ:1056748134
級別: 論壇先鋒
|
日本人不公布,抗戰(zhàn)勝利放假這三天我來研究下。這能算抗日密碼戰(zhàn)爭嗎 |
|
---|---|---|
|
tingfenghu
級別: 工控俠客
|
好像windows系統(tǒng)不是實時系統(tǒng),正常刷新速度最快是ms級,即使用光纖通訊都要這個時間。 |
|
---|---|---|
|