百度
蘇州硫化機 油壓機維修
級別: 略有小成
![]() |
請教大家個(gè)問(wèn)題,我用smart200給設備做計數,配方有200多個(gè)。 我可以讀取到配方號0--255. 我如何做到生產(chǎn)配方1,配方1的計數器VD10加1 生產(chǎn)配方2 配方2的計數器VD14加1 一個(gè) 一個(gè)的寫(xiě)太多了,大家有沒(méi)有好辦法。希望大家給點(diǎn)建議。 ![]() |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
![]() |
比較基礎的問(wèn)題了 使用數據結構+偏移地址的寫(xiě)法 舉個(gè)例子你的配方需要32個(gè)字節的空間來(lái)存放實(shí)際的數據,那么直接定義好這32個(gè)字節的數據結構就行了,完了以后把這32個(gè)字節全部使用指針進(jìn)行訪(fǎng)問(wèn),比如VD100~VD224,這32個(gè)雙字里面全是指針(實(shí)際上沒(méi)必要定義32個(gè),看你需要什么數據類(lèi)型,32個(gè)字節也可以是16個(gè)字或者8個(gè)雙字).接下來(lái)寫(xiě)一個(gè)獨立的子函數專(zhuān)門(mén)用于處理VD100~VD224的數據,邏輯也非常簡(jiǎn)單,假設1號參數存在VB1000,那么輸入1號參數設置VD100取地址VB1000,后面根據數據類(lèi)型依次加上去,設置2號參數則所有指針+32 這樣在使用的時(shí)候,編程用的入口實(shí)際上是同一套,比如定義了*VD108這個(gè)雙字是計數器,那么所有的寫(xiě)入位置都是*VD108,但是實(shí)際上因為操作的是指針,這個(gè)指針映射到數據結構上的第28個(gè)字節,那么在實(shí)際操作的時(shí)候,設置1的時(shí)候實(shí)際寫(xiě)入是VD1028,設置2的時(shí)候是VD1040 西門(mén)子這個(gè)按字節尋址同時(shí)提供指針的寫(xiě)法,雖然最靈活,但是比日系的DxxZn寫(xiě)法稍微復雜了一丟丟,操作上也會(huì )復雜一點(diǎn)要自己算偏移 |
---|---|
|