抱歉,
前面好象我又理解錯樓主意思了。
樓主有可能是想做一個“萬能程序”,讓同一個PLC程序可以用在多臺相似的機(jī)器上。
理論上只要硬件不沖突,還真的可以。
一是根據(jù)軟元件的數(shù)值不同,機(jī)器做不同的動作。
二是根據(jù)接線不同,機(jī)器作不同用途。比如短接X1是彎管機(jī),短接X2變成清洗機(jī),短接X3變成包裝機(jī)。
比如QQ.exe 我可以一臺電腦開3個QQ,只是輸入不同賬號和密碼。但進(jìn)程里都是三個QQ。
有一個舞臺項(xiàng)目大概編程思路是這樣:
程序由:掃描主程序,功能子程序,參數(shù)輸入輸出 三部分組成
導(dǎo)演希望在不同時間段,舞臺出現(xiàn)不同的背景。(比如央視春晚的背景液晶屏)
一組參數(shù)為10個D,D0-D9。
D0代表此動作保持的時間,D1代表伺服移動時的速度,D23456789代表8個伺服的絕對位置。
一共有100組參數(shù)。
客戶在觸摸屏上設(shè)置好每組畫面8塊液晶的高低數(shù)值。按聯(lián)機(jī)啟動時,一組一組依次展示,從第1組到第100組。
比如某小品節(jié)目使用3號參數(shù),某相聲節(jié)目使用8號參數(shù),某歌唱節(jié)目使用10號參數(shù)。
也可以事先輸入好,根據(jù)導(dǎo)演的時間自動運(yùn)行。當(dāng)然也可以手動運(yùn)行,就是直接使用其中一組參數(shù)。
這些D代表了不同的參數(shù),有點(diǎn)象QD75P編程時的定位數(shù)據(jù)那種概念。
主程序 先掃描第一個D,如果D>0,那說明這里有活干,就觸發(fā)了相應(yīng)的子程序。并且在觸發(fā)前把D1-D9這些參數(shù)傳送到相應(yīng)的子程序?qū)?yīng)的區(qū)域。
再舉一個例:
假如某設(shè)備控制機(jī)械手在電腦上打字。電腦鍵盤上的123456789ABCDEFG回車空格就可以在觸摸屏上選擇
比如按鍵“1數(shù)字”的話,就可能是伺服移動到X=20,Y=30的位置,然后再輸出一下氣動元件。
比如按鍵“enter回車鍵”的話,就可能是伺服移動到X=120,Y=80的位置,然后再輸出一下氣動元件。
所以有可能我們要把所有字母對應(yīng)的位置先輸入到掉電保持寄存器中保持起來。
然后觸摸屏上輸入了ymmfa.com回車
PLC把分別把y存入D0,m存入D10....回車存入D100
主程序掃描D0,然后根據(jù)D0的內(nèi)存,把相應(yīng)存儲區(qū)的XY坐標(biāo)找出來MOV過去,然后CALL伺服移動的子程序。
執(zhí)行完后再做下一行,直到遇到空白參數(shù)為止才停下
這是一種原始的笨方法,不過實(shí)現(xiàn)起來比較容易。
最早的時候夢想當(dāng)一個黑客,做出一個萬能程序,這個程序可以不斷升級自己,并且不斷分身,一個用來守護(hù)進(jìn)程,一個用來尋找肉雞,一個用來自我升級。。。
后來發(fā)現(xiàn)其實(shí)人世間就這樣一個程序,一個程序叫孩子,參數(shù)是天天不聽話。一個程序叫老婆,參數(shù)是天天使勁花錢,當(dāng)然還有很多很多程序,比如廣大網(wǎng)友們。有的看貼回復(fù),有的看貼不回復(fù)。