百度
蘇州硫化機(jī) 油壓機(jī)維修
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 187 個(gè)
工控威望: 334 點(diǎn)
下載積分: 1462 分
在線時(shí)間: 378(小時(shí))
注冊時(shí)間: 2007-11-30
最后登錄: 2024-12-17
查看百度的 主題 / 回貼
樓主  發(fā)表于: 2023-06-04 19:20
請教大家個(gè)問題,我用smart200給設(shè)備做計(jì)數(shù),配方有200多個(gè)。
我可以讀取到配方號0--255.
我如何做到生產(chǎn)配方1,配方1的計(jì)數(shù)器VD10加1
生產(chǎn)配方2 配方2的計(jì)數(shù)器VD14加1
一個(gè) 一個(gè)的寫太多了,大家有沒有好辦法。希望大家給點(diǎn)建議。
hstec2002
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 489 個(gè)
工控威望: 1892 點(diǎn)
下載積分: 8465 分
在線時(shí)間: 680(小時(shí))
注冊時(shí)間: 2021-05-05
最后登錄: 2024-12-20
查看hstec2002的 主題 / 回貼
1樓  發(fā)表于: 2023-06-04 20:56
指針尋址+循環(huán)啊
QQ: 2845452345
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 770 個(gè)
工控威望: 1148 點(diǎn)
下載積分: 399 分
在線時(shí)間: 604(小時(shí))
注冊時(shí)間: 2019-09-22
最后登錄: 2024-12-23
查看gxtmdb82164的 主題 / 回貼
2樓  發(fā)表于: 2023-06-05 13:56
比較基礎(chǔ)的問題了

使用數(shù)據(jù)結(jié)構(gòu)+偏移地址的寫法

舉個(gè)例子你的配方需要32個(gè)字節(jié)的空間來存放實(shí)際的數(shù)據(jù),那么直接定義好這32個(gè)字節(jié)的數(shù)據(jù)結(jié)構(gòu)就行了,完了以后把這32個(gè)字節(jié)全部使用指針進(jìn)行訪問,比如VD100~VD224,這32個(gè)雙字里面全是指針(實(shí)際上沒必要定義32個(gè),看你需要什么數(shù)據(jù)類型,32個(gè)字節(jié)也可以是16個(gè)字或者8個(gè)雙字).接下來寫一個(gè)獨(dú)立的子函數(shù)專門用于處理VD100~VD224的數(shù)據(jù),邏輯也非常簡單,假設(shè)1號參數(shù)存在VB1000,那么輸入1號參數(shù)設(shè)置VD100取地址VB1000,后面根據(jù)數(shù)據(jù)類型依次加上去,設(shè)置2號參數(shù)則所有指針+32

這樣在使用的時(shí)候,編程用的入口實(shí)際上是同一套,比如定義了*VD108這個(gè)雙字是計(jì)數(shù)器,那么所有的寫入位置都是*VD108,但是實(shí)際上因?yàn)椴僮鞯氖侵羔?這個(gè)指針映射到數(shù)據(jù)結(jié)構(gòu)上的第28個(gè)字節(jié),那么在實(shí)際操作的時(shí)候,設(shè)置1的時(shí)候?qū)嶋H寫入是VD1028,設(shè)置2的時(shí)候是VD1040

西門子這個(gè)按字節(jié)尋址同時(shí)提供指針的寫法,雖然最靈活,但是比日系的DxxZn寫法稍微復(fù)雜了一丟丟,操作上也會(huì)復(fù)雜一點(diǎn)要自己算偏移