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