yamasoxi
級別: *
![]() |
算法有待提高. 感覺寫的好累贅..! |
---|---|
|
yamasoxi
級別: *
![]() |
你們有沒有想過用VB效率很低.? 如果同時監控幾十組數據就不能達到毫秒級.. 就會出現丟數字... 還會出現很卡的現象. 我嘗試用多線程做. 但是VB支持多線程. 沒辦法做到. 還有算法上的優化. 如果需要同時監控連續的多組位元件. 有沒有嘗試過用.K8M0 把這個值寫入到一組寄存器中. VB只需要讀取一個寄存器就能獲取到. 連續的N個字元件的狀態. VB中直接判斷所對應的字位置時1還是0 PLC程序也許我不怎么樣. 但VB的話還是可以的..! |
---|---|
|
litung
臺灣-李同在
級別: VIP會員
![]() |
呵,本來就寫的很不好了,沒什麼算法可言的 ^_^ 小弟只是提供方法,想法。 想要漂亮的程式碼,請自行修改成你要的樣子。 可以寫成模組化,也可以把訊息記錄丟到access資料庫,用sql去查詢比對,顯示訊息。 至於效能的話,vb就夠用了。 PLC本身傳輸速度就不快,大部份都是9600,19200,38400 BPS的傳輸速率而己。 快一點的話,就用網路模組。 同時監控多筆資料,跟PLC的寫法有關。 若真的要監控的話,要先規劃好你的資料區(D值);要集中在連續的區域,這樣就可以一次讀取多筆資料。 若資料分散的話,在傳輸讀取上效率會差很多的。 |
|
---|---|---|
|
yamasoxi
級別: *
![]() |
我用VB同時監控14組數據就會丟... 用的不是很爽.! 算法上沒什么問題.估計涉及到PLC的傳輸速率.! FX3U的PLC我想把傳輸速率設高點.但半天沒找到在那里設. 難道不可以設.? |
---|---|
|
litung
臺灣-李同在
級別: VIP會員
![]() |
3U好像可以設到115.2KBPS。 14組數據?一組數據多大?太大的話最好切割,分次讀取。 印象中一次最多好像可以讀64個還是128個16BIT的D值。 32BIT的D值,就沒去測試了。32BIT印象中無法連續讀。 要用其他方式,如下: '/**************************************************************/ '/*功能:連續讀取32BIT PLC D值的資料 */ '/*用法:Call Read32Bit("D0", "D2", "D4", "D6", "D8") */ '/**************************************************************/ Public Function Read32Bit(ParamArray PLC_Data()) As String() ....程式忽略 End Function |
|
---|---|---|
|
litung
臺灣-李同在
級別: VIP會員
![]() |
與什麼PLC連接? |
|
---|---|---|
|
小數點
級別: *
![]() |
這個是不是仿真學習系統呀?是的話,麻煩樓主也放在論壇上讓我們這些新手有更多的學習機會學習,謝謝 |
---|---|
|
litung
臺灣-李同在
級別: VIP會員
![]() |
那個比較不方便公佈。那是實際設備測試模擬用的。去年寫的。 因設備在大陸製作、試機;小弟人在臺灣,無法試機,寫來,試機用的。 |
|
---|---|---|
|