jinweibao
級別: 正式會員
|
本人使用 易語言 編寫上位機程序,自己調用windows com通訊API 寫了個三菱和com口通訊的dll, 但是使用時發現只能使用9600波特率通訊,如果在works2中更改波特率為115200后就可以使用這個波特率一直運行,但是一斷電就沒了, 我問了三菱官方,他們說速率自動調節,是不可以修改的, 但是我記得曾經修過深圳一家公司的工控系統,他們的fx3u就是一直是115200通訊,而且斷電后再上電也是這個速率,請問這個是什么情況? 而且我用com口監視后發現PLC先從D8116中獲取4字節數據,然后根據一定的計算寫入D8118,然后將波特率更改為115200就可以通訊了, 但是查看了很多數據也無法推斷出具體算法,求問有沒有對這方面有了解的大神? 據我用軟件測試,我現在用9600波特率獲取D0-D12的數據發送到接受需要大約65ms,普通強制置位通訊發送到接受大約15ms左右(經過自己最大能力優化,多線程,代碼優化都用上了。。。),而115200波特率讀取24位數據(D0-D12)只需5-6ms,差距太大了,幾十上百毫秒在軟件中實時監控就有卡頓了(伺服控制),還不算其他的控制!求大神解決。。 |
---|---|
|
mythic
mythic
級別: 略有小成
|
當初有監控過,但是當時主要是在尋找密碼,所以沒關注波特率 而且一開始就從PLC讀入一大堆數據,看著頭大 |
---|---|
|
xiakebiao
工控老人
級別: 網絡英雄
|
易語言本身就是解釋性程序,比BASIC的層次還低,不適合實時控制的數據采集。 |
---|---|
|
jinweibao
級別: 正式會員
|
VB等更是算了吧,自帶的comm組件一個置位通訊來回都要幾十毫秒,如果是調用API,用什么編程軟件都是一樣, 再說了,一個上位機控制程序用C語言?你們見過哪家的機械電腦控制系統是用C的?你用C寫個窗口要多長時間?windows的消息處理你又要寫多長時間? 和編程軟件沒有關系,關系在于如何提升通訊速率是根本,電腦程序再慢都是微秒級,一個置位通訊就幾十毫秒,你就是用機器語言寫程序也沒用 |
---|---|
|
jinweibao
級別: 正式會員
|
沒辦法了,找了個折中方法,啟動程序調用gppw軟件,然后通過消息后臺控制gppw將波特率設定為115200,然后程序再開始初始化通訊 |
---|---|
|
hawson
QQ:1056748134
級別: 論壇先鋒
|
確實有點意思,我看看幾天能搞了出來 |
|
---|---|---|
|
hawson
QQ:1056748134
級別: 論壇先鋒
|
日本人不公布,抗戰勝利放假這三天我來研究下。這能算抗日密碼戰爭嗎 |
|
---|---|---|
|
tingfenghu
級別: 工控俠客
|
好像windows系統不是實時系統,正常刷新速度最快是ms級,即使用光纖通訊都要這個時間。 |
|
---|---|---|
|