Parlament

Parlament

2019. június 20., csütörtök

Első 40 évem a szakmában - a PCL-sztori

Még mindig csak az első évtizedben vagyunk, de feltétlen szólni kell a PCL-80 programnyelvről, mert ez volt az egyik legsikeresebb projektem. Egy korábbi posztomban említettem, hogy szakmérnöki diplomatervem része volt egy általam kifejlesztett real-time programnyelv, a PCL-80.
A PCL-80 fordítóprogramja alapvetően ISIS-II operációs rendszer alatt futott, amibe persze beleértendő a Rolitron RODOS operációs rendszere is. A PCL-80 nyelv egy nagyon letisztult, FORTRAN-szerű programnyelv volt, mely i8080 processzoron és annak rokonain, Z80-on vagy i8085-ön futott, és egy világos programstruktúrát tárt a felhasználó elé:

  • Volt egy egyszer lefutó, inicializáló része.
  • Volt tetszőleges számú időzített programrésze, ún. taskja.
  • Voltak programmegszakításra elinduló programrészei. A programmegszakításokon keresztül a külvilág kommunikál a számítógéppel, pl. egy kommunikációs csatorna jelzi, hogy adatot fogadott.
  • Volt egy olyan programrész, mely a processzor szabadidejében, háttérben futott.
Íme a programstruktúra az eredeti, majd' 40 éves dokumentációból:
Az Intel egy gépi kódú fordítót ajánlott programfejlesztésre, az ASM-80-at, valamint egy magas szintű nyelvet, a PL/1-re hajazó PLM-80-at. Mindkettő elég barátságtalanul bánt a valós számokkal, igazi valós aritmetikai zárójeles kifejezést egyikben sem lehetett használni.
A PCL-80-ban zárójeles lebegőpontos aritmetikai kifejezések is használhatók voltak, melyben dinamikusan indexelt változók is lehettek (amikor egy változó tartalma mondja meg, hogy egy tömb hányadik elemével dolgozunk). A lebegőpontos aritmetikai programrendszer megegyezett a diplomatervemben kifejlesztettel.
Mivel a PCL-be jól beépíthetőek voltak külső, ASM-ben vagy PLM-ben megírt modulok, ezért könnyen kombinálhatók voltak az ezekben kifejlesztett dolgok, például mérés-adatgyűjtési feladatok. Az Automatizálási Tanszéken hamar rájöttek, hogy ideálisan használható oktatásban.
A '80-as évek elején építettek a tanszéken egy lepárló-modellt, egy mini kolonnát. Vegyipari, finomítási, frakcionálási folyamatokat modelleztek vele (a hallgatók csak pálinkafőzőnek hívták), és az irányítástechnikai részhez ideális volt a PCL-80. Később aztán újabb eszközöket használtak az automatizálásra, amikor utoljára a tanszéken jártam, SIEMENS PLC-ket (programozható logikai vezérlőket) láttam a lepárló mellett.
De a tanszék üzleti lehetőséget is látott a PCL-80-ban, és az évtized első felében több cégnek is eladtuk:

  • 1981-ben az én cégemnek, a VEIKI-nek. Fel is használtuk a Dunamenti Erőműbe fejlesztett irányítástechnikai rendszerünkben, ebben írtuk meg a szabályozó részt.
  • 1982-ben a SZTAKI-nak és az Olajtervnek.
  • 1983-ban az ERFI-nek, valamint az Olajtervnek egy továbbfejlesztett változatot.
  • 1985-ben a VILATI-nak.
Az Olajtervnek azért kellett egy továbbfejlesztett változatot készíteni, mert volt egy Mostek (korabeli mikroprocesszor-gyártó cég) fejlesztőrendszerük, amin nem ISIS-II, hanem CP/M operációs rendszer futott. A CP/M is nagyon elterjedt volt, például a SIEMENS S5-sorozatú PLC-ihez CP/M alapú fejlesztőprogramot árultak. Később, amikor a programfejlesztés már PC-alapú lett, egy CP/M-emulátort futtattak a fejlesztőprogramok.
A CP/M operációs rendszer másképpen ábrázolta a már lefordított, de még más programmodulokkal összekapcsolható és tetszőleges memóriaterületre címezhető kódot, mint az ISIS-II. Ráadásul az ábrázolásmód ún. bitstream, bitfolyam volt, vagyis nem volt nyolcbites bájtokra tagolva, hanem eltérő hosszúságú szakaszok követték egymást. Megkínlódtam vele, míg sikerült CP/M kompatibilis PCL-80 fordítót fejlesztenem. Viszont az Olajterv kapcsán jutottam el a Dunai Finomítóba. Egy olyan feladatnál vetették be a PCL-80-at, ahol a maradékanyag eltüzelésénél kellett szabályozni az oxigént. Tudnivaló, hogy akkor ideális az égés, ha az égéstermékben 2-3 % az oxigéntartalom. Ha kevesebb, félő, hogy nem tökéletes az égés, ha több, feleslegesen melegítjük az oxigént, ami hőveszteséget okoz. Éjjeli műszakban látogattam el a kazánhoz, nagy élmény volt a finomító éjszakai kivilágításban.
A PCL-80-at - mivel szoftver termékről volt szó - a szerzői jogvédő hivatalon keresztül értékesítettük. Emlékszem, mindig, amikor mentem átvenni az aktuális járandóságomat az OTP-be, abban reménykedtem, hogy a kisasszony valami menő slágerszerzőnek, nem pedig kocka szoftveresnek gondol.
Mivel ISIS-II alatt kifejlesztett programjaink még 2017-ben is futottak Pakson, fontos volt, hogy a programfejlesztési környezet végig megmaradjon. Szerencsére van ISIS-szimulátor, amely lefut DOS alatt, DOS pedig bármelyik Windows-verzióban futtatható, így mielőtt nekiültem ennek a posztnak, kipróbáltam a gépemen, elindul-e még a PCL-80 fordító:
Mint az ábrán látható, egy DOSBox nevű program DOS-t szimulál nekem, azon belül egy RTCS/iSIM85 nevű program ISIS-II-t. A PCL-80 fordító 3.0 verziója indult el, de barátságtalanul közölte, hogy nem adtam meg neki a lefordítandó fájl nevét.
Az emberek 30 éves korul előtt a legkreatívabbak. Ebben az életkoromban bukkantak fel az iparágban a PCL-80 különféle verziói, számos mérnökhallgató ezen tanulta a számítógépes folyamatirányítás alapjait. Az oktatásban magam is részt vettem egy évig mellékállású tanársegédként.

Nincsenek megjegyzések:

Megjegyzés küldése