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