Dokument nr. 15 (2001-02) BTF Spesielt Emne Prosjekt Kroningsferd - marandon PCS og Java Profibus FrameWork JPF (NQ2 - Nov 9 2001) MWT-rapporten Rapport levert til Sigbjørn Risa v/ HIGHTEC AS, Kjetil Torvanger v/ Siemens Norge AS, Einar Olsen v/ Trafsys Norge AS, Toralf Skrede v/ Bergen Tekniske Fagskole og Andrè Marandon v/ Bergen Kunstgalleri av kommisjonen som ble opprettet for å granske innsnevrete forhold i forbindelse med tilegnelse og prosessering av bitsett til instrumentkontroll for styring av elektromekaniske objekter/givere, samt polling av følere. Det er krav om utvikling, kvalitetssikring og håndtering i henhold til ISO 9000(1,2,3). Det er krav om at dette PCS utvikles i henhold til OMG SCADA. Datasett skal behandles i henhold til OMG CORBA. Systemet skal implementers i henhold til ISO POSIX. Kommuniksjon mellom PCS og PLC baseres på nedlagt pseudo-standard "Java Control and Automation FrameWork" og forslag fra IEEE "Java Profibus Framework". Avlevert til BTF-ledelse Apr 1 2002 Innhold 2 Kravpesifikasjon 3. tolkning og løsning av kravspesifikasjon initiell utforming - 3.1 innledning Det orbindelse med tilegnelse og prosessering av bitsett til instrumentkontroll for styring av elektromekaniske objekter og givere, samt polling av følere. Det er krav om utvikling, kvalitetssikring og håndtering i henhold til ISO 9000(1,2,3). Det er krav om kontrollsystem i henhold til OMG SCADA. 3.2 systemforklaring Et grunnscenario er i bunn for utformingen. Det skal styres og måles på et lys, et varmeelement og en vifte 3.2.1 innledning Det primære system består av 3 moduler. ::navn:: ::som har:: mod_mctrl mod_cplc mod_fjktrl Modulen mod_mctrl inneholder 3 tråder ::navn:: ::som har:: mod_filg mod_filtr mod_filtrck Modulen mod_filg er en tråd i mod_mctrl som henter datasett fra et datavarehus. Disse datasett inneholder meta-, pdu- og paddingdata i henhold til IEC 61158 og blir derfor filtrert og kontrollsjekket av henholdsvis mod_filtr og mod_filtrck. I henhold til kravspesifikasjon blir målverdier plassert i variabler som skal brukes til instrumentkontroll for styring av elektromekaniske objekter/givere, samt polling av følere. 3.2.2 Systemmodell Målestasjon MI SCADA CAN mod_mtrcl mod_cplc /--------------\ Metrologisk ROAMING SCADA CAN | Sognefjell | Institutt Simatic S7 \--------------/ \ Proseskontrollsystem / - GSM/PROFIBUS - |-----| - |---------------------------| /--------------\ |----------| |----------| / | PLC | | Temperatur \ | | Ekkofiskfeltet | - POTS - | DW | - POTS - | PCS | - - |-----| | Vifte - giver/føler | \--------------/ |----------| (modem) |----------| \ | Lys / | /--------------\ / Datavarehus \ - ETHERNET/IP - |-----| |---------------------------| | Sletten fyr | | | SAN | \--------------/ RS-232 |-----| | /^\ | | mod_fjktrl | | Trådløs PCS-kontroller ###3.2.3 kunnskapskrav .2.5.1 moduler mod_mctrl - master control module - Denne applikasjonen har med all datasettutveksling via RS-232. Den utveksler datasett med mod_fjktrl på en kommunikasjonsport og sender pstyrer PLC mod_filg - (file get) - denne applikasjonen har med all henting av datasett fra meterologisk institutt mod_cplc - (plc controller) - tar imot data fra mod_mctrl og styrer fysiske objekter etter gitt verdi mod_filtr - (filter) - skal filtrere ut nødvendig data fra fil inn mod_fjktrl - (fjernkontrollen) - skal generere 3 byte med data og sende det over rs232. mod_jappl - (java-applet) - programmet som skal motta datasett fra mod_mctrl for å vise grafisk i en applet. mod_nwserv - (news-portal) - oppsett av news-portal. mod_inst - (installasjonsprogram) - lage innstallasjonsprogram for hele systemet sammen med manual-sider for implementasjon i POSIX miljø. mod_btstr - (bootstrap) - ansvar for oppstart av operativsystem/miljø på sparc-computer. 3.2.5.2 elementer elmt_innl - (innleveringsdokumentet) - dokumentet som skal leveres til kommisjonens initierere, hjelpere, støttere og medlemmer. elmt_systmod - (systemmodell) - systemmodell blokkskjema av alle moduler. Er en del av elmt_innl. elmt_dokref - (dokumentreferering) - relevant dokumentasjon blir ivaretatt og sikrer dens gyldig- og varighet. Innhenting av dokumentajon. elmt_syslog - (systemlogg) - skriver logg for overordnet system. elmt_uttrk - (elmt_innl utdrag) - skal trekke ut vesentlig informasjon fra elmt_innl til tekstfil for å vise på kommisjonens http-portal. elmt_mans - (manualsider) - det skal lages manualsider for alle applikasjoner. elmt_hdok - (hoveddokumentet) - dokumentet som inneholder elmt_krvspk, elmt_dokref og elmt_mans og elmt_innl. elmt_krvspk - (kravspesifikasjon) - kravspesifikasjon til det utviklede PCS. 3.2.5.3 håndtering mgmt_lead - (prosjektleder) - har med all lederaktivitet å gjøre. Delegering av oppgaver, overordnet innsyn i alle moduler. Planleggingen av infrastruktur i komplett system. mgmt_nlead - (prosjektnestleder) - tar over hvis prosjektleder er borte. mgmt_htprt - (hypertextportal) - administrasjon av kommisjonens http-portal. 3.2.6 tidsperspektiv 3.2.7 bruksområder En PCS er et anlegg som henter datasett fra et datavarehus som brukes til instrumentkontroll for styring av elektromekaniske objekter/givere, samt polling av følere. PCS-systemet baseres på OMG SCADA og miljøet er ISO POSIX 3.2.8 implementasjonsspråk c, asm, java, ISO sh, IEC 61158, IEC 1131 3.2.9 ansvarsområde Prosjektet er delt opp i moduler og ansvarsfordelt. Alle medlemmer skal være orientert via systemlogg (elmt_syslog). 3. systemstrukturering 3.1 utforming av metadata 3.2 utforming av datasett 3.3 utforming av kommunikasjonsgrensesnitt ::datasett:: ::via:: mod_cplc IEC 61158 over GSM mod_mctrl IEC 61158 over RS-232, IP over Ethernet mod_fjktrl IEC 61158 over RS-232 mod_jappl IP over Ethernet Det skal brukes PROFIBUS basert på IEC 61158. 3.4 utforming av inn-/utliste UT: 1. trinnløs styring av spenningsnivå på en 20W pære (strømforsyning; 230v trafo) -styremotstand. 2. trinnløs styring av spenningsnivå på en230v vifte (kjøkenvifte). (han sier at det sannsynlig vis dreier seg om styring av ampletyden - ikke frekvensen) Her har jeg et alternativ i 4 stk. pc vifter (store) - Spesifikkasjon: 208 . 240v - 50/60HZ, 12/11W 80/70mA 3. trinnløs styring av en termostatstyrt vannkjøler (230v ?) 4. låsemekanisme for dør (230v ?) INN: 1) Sjekker at at komp. 1 har spenning (ikke absolutt nødvendig) 2) Sjekker at at komp. 2 har spenning (ikke absolutt nødvendig) 3) Sjekker at at komp. 3 har spenning (ikke absolutt nødvendig) 4) Føler som registrerer om døren er åpen eller lukket. 4. implementasjon 4.1 mod_mctrl 4.1.1 innledning (master control module) - Denne applikasjonen har med all datasettutveksling via IEC RS-232. Den utveksler datasett med mod_fjktrl på en kommunikasjonsport og sender datasett til mod_cplc. I forbindelse med grensesnittet mot PLC skal det igangsettes utvikling av et prosesskontrollsystem basert på en ikke-implementert spesifikasjon gitt av IEEE i "The Java Fieldbus Control Framework". Videre skal den følge kontroll og datatilegnelsehåntering til instrumentkontroll for styring av elektromekaniske objekter og givere, samt polling av følere henhold til OMG SCADA. Det er krav om utvikling, kvalitetssikring og håndtering i henhold til ISO-9000(1,2,3). 4.1.2 Systemmodell Kommunikasjonsprotokoller er implementert i henhold til ISO 7498. PCS er implementert i henhold til OMG SCADA. Implementasjonsstandard Reell implementasjon OSI ############################ 7 APPLIKASJON OMG SCADA, OMG CORBA mod_mctrl ############################ 6 PRESENTASJON ASN.1 mod_mctrl, skal erstattes av mod_mctrlp ############################ 5 SESJON IEC 61158 mod_mctrl, skal erstattes av mod_mctrls ############################ 4 TRANSPORT IEC 61158 mod_mctrl, skal erstattes av mod_mctrlt ############################ 3 NETTVERK IEC 61158 mod_mctrl, skal erstattes av mod_mctrln ############################ 2.5 LLC IEC RS-232/ISO POSIX UNIX V.3 ############################ 2 MAC IEC RS-232 ############################ 1 FYSISK IEC RS-232 ############################ 4.1.3 Prosessmodell HOVEDTRÅD main() ------ filg() TRÅD SOM HENTER DATASETT + initCommport() + sendData() + recvData() 4.1.4 Systemflytdiagram konfigurasjonsfil > read_conff() | datasett > read_datas() kontrolldata > modem RING 4.1.2 muligheter * computer Det skal brukes en computer med SPARC-arkitektur. WS sunshade 1000 CPU 2x ultrasparc III 500MHz IO 2x RS-232 * programmering: språk og operativsystem/miljø-spesifikasjon Det ble valgt ISO C og ISO POSIX som språk og henholdsvis operativsystem/miljø-spesifikasjon. * link * applikasjoner 4.1.2 formater og protokoller Det blir en asynkron seriell sending av datasett i forbindelse med kommmunikasjonen med mod_cplc og mod_fjktrl. - 8 bits pr BYTE - 1 STOP bit - 9600 Hz * transmisjon av en byte: Bitformatet og bitraten. * Data Formats: Binary Data . Text Data * Preventing Missed Data: Handshaking . Buffers . Polling and Interrupts . Acknowledgments . Error-checking * Port Resources: Finding Ports . Port Information in the Registry 4 Programming * pollet kommunikasjon * flytkontroll * : The Main Form . General Routines . Selecting a Port . Saving Data * Other Ways to Access Serial Ports: API Functions . Direct Port Access 4.5 grensesnitt mot bruker 4.5.1 Innledning Applikasjonen skal bruke en konfigurasjonsfil for parametre. Applikasjonen har en oppstartsparameter som indikerer URL til konfigurasjonsfil. 4.5.1 CLI Applikasjonen mod_mctrl er en bakgrunnsprosess og startes med navnet på modulen (mod_mctrl). 4.5.2 GUI 4.5.2.1 mod_jappl Programmet mod_jappl er en applet ifølge Sun (TM). Den skal gjengi datasettet som mod_mctrl arbeider med. 5 serie Port kommunikasjonsport grensesnitt Prosessering av motatt data Signal nivå 6 linking av to enheter med RS-232. konvertering mellom 5V logikk og RS-232: MAX232. 8 Applikasjon 8.1 innledning 8.2 filosofi RS-232 varierer mellom +9V og -9V og signalerer asynkont. Den ligger vanligvis i logisk høy tilstand når linjen er uaktiv. Overføring initieres med et startbit. RS-232 ble utviklet for å få enheltlig kommunikasjon med to terminaler. vi bruker en ubalansert linje. Man kan trekke 20mA fra utgangen på den serielle kommunikasjonsporten. Hastigheten er 9600 da modemet på mod_cplc-side er basert på GSM. Vi anvender en 25-pin kontakt på mod_mctrl og mod_cplc. mod_fjktrl vil ha en 9-pin kontakt. DSR og DTR indikere at modemet og terminalen er klar til å kommunisere. Modemet ringer opp den andre terminalen og når kontakten opprettes setter modemet DCD høy. Sendingen starter når modemet har aktivert CTS. Data sendes til TxD og mottas på RxD. tilkobling til UART I forbindelse med tilkobling til modem 8.3 kildekode 8.4 implementering av program Distribusjonen av marandon PCS 8.5 feilsøking - Sett porthastighet stty < - Les utdata cat > - Les kommunikasjonsportinformasjon setserial -a setserial baud_base * operativmiljøverktøy: Direct Cable Connection . DOS Interlnk and Intersvr 9 Links and Networks with RS-485 * Adding an RS-485 Port: PC Expansion Cards . Converter Chips . Converting TTL . Converting RS-232 . Short Links between Different Interfaces Nettverksprogrammering - trafikkhåndtering: protokollbeskjedutveksling - addressetilegnelse/deling - annen informasjon i protokollbeskjeder - bruk av eksisterende protokoller Addressering: tildeling, detektering. Informasjon i datasett 8.6.1 Metadata 8.6.2 Brukte datasett Informsjonen i datasett er i henhold til ASN.1. timing i sending timing i mottak * tips 11. implementering av java communications API i POSIX-miljø 11.x ISO POSIX implementeringslogg 11.1 Implementering av rxtx - tilegn java communications api for x86 solaris på http://java.sun.com/products/javacomm og legg datasettet i $JAVA_HOME/commapi - tilegn rxtx java communication for linux (JCL) fra http://www.rxtx.org og dekomprimer rxtx-bins.1.tar.gz til - følg /INSTALL applikasjonen bruker RS-232 signalering mot mod_fjktrl og mod_ctrlplc og benytter samme pakkeformat. 5. testing 6. oppgave- og feilhåndtering 6. management 6.1 ressurser 6.1 versjonskontroll 6. Operativsystem/miljø og hardware for marandon PCS 7. Fjernkontroller 7.1 Innledning mod_fjktrl er en fjernkontroller. Den skal simulere en SCADA-applikasjon og oppdatere variablene i Forsikring om felles jord. 8. dokumentasjon 8.1 innledning 8.2 kabling til mod_fjktrl og modem (kontakter og kabler for RS-232) 8.2.1 25-pin 8.2.2 9-pin 8.2.3 Lengdegrense 8.2.4 isolering, jording, spenningsforsyning og vern 8.2.5 feilsøking og overvåking 8.2.5.1 oversåking i operativmiljø Den serielle kommunikasjonsporten i FHS (File System Hierarchy Standard) er /dev/ttyS*. Det er også mulig å bruke en annen kommunikasjonsport, enten på egen eller på annen stasjon. 8.2.5.2 hardware overvåkning Den serielle datastrømmen kan tappes fysisk. 9. refernsiert dokumentasjon 9. brukte standarder og teknologier 9.1 Drøfting av hvilke mulligheter en har for fjernkontroll av mekaniske apparater Det er mulig å styre apparatene - via en minneaddresse ved hjelp av et inn-/ut-kort. - via inn-/ut-portene 9.2 bruk av ISO-håndteringssytem ISO 9000 er et generic håndteringssytem. Med generic menes at de samme standardene kan implemetenteres i hvilken som helst organisasjon, stor eller liten, uansett produkt eller tjeneste, aktivitet eller uansett business enterprice, offentlig administrasjon eller regjeringsdepartement. Håndteringssystemerm, slik som ISO 9000(1,2,3) sikter mot hva organisasjonen gjør for å håndtere sine prosesser og aktiviteter. I mange små organiseringer er det ofte ikke slike systemer, bare "deres måte å gjøre ting på" og "den måten" er som oftest heller ikke skrevet ned. For en større, eller kanskje bare heller en mer seriøs bedrift er det større sjanse for at det finnes skrevne prosedyrer eller instruksjoner. Dette forsikrer at alle ikke bare gjør "sin lille ting" og at det er et minimum system. Standarder for hånteringssystemer gir organisasjonen en modell å følge når den setter opp håndteringssystemer. En modell for håndteringsystemer som følger standarden er bygd på en solid platform av kunnskap. 9.3 Bruk av SCADA SCADA, som står for Supervisory Control and Data Acquisition, har i årtier vært brukt for overvåking og kontroll av olje og gass-produksjon, måling og transportsystemer. Den stiller meget høye krav til teknisk kompetanse og kvalitet. 9.4 Bruk av IEC 61131-3 IEC 61131-3 er den eneste globale standard for industriell kontrollprogrammering. Den harmoniserer med måten mennesker designer og håndterer industrielle kontrollere ved å standardisere programmeringsspråket. Et standard programmeringsgrensesnitt muliggjør at mennesker med forskjellig bakgrunn and kunnskaper kan lage forskjellige elementer av et program i forskjellige tider av utviklingsperioden. Standarden inneholder definisjonen på equential Function Chart (SFC) språket, brukt for å strukturer den interne organisasjonen i et program og fire inter-operatible språk: Instruction List (IL), Ladder Diagram (LD), Function Block Diagram (FBD) og Structured Text (ST). Med en komponering inn i logiske elementer er vært program strukturert og har derved økt sin gjenbrukbarhet, minsket feil økt programmereren og brukerens effektivitet. 10. avsluttende kommentarer Kommisjonen er bevisst innen standardiseringen i det internasjonale samfunn og kjenner godt de internasjonale standarder som er definert av uavhengige organisasjoner slik som ISO, IEEE, IEC, ANSI, ITU osv. ISO C er et programmeringsspråket som er ISO standard. Det er et arkitekturuavhengig språk som ligger nærmt maskinspråket og er det språket som blir brukt i industritekniske løsninger. Java, som kommisjonen var påkrevd å nytte, er et propretiært språk som ble skapt i frustrasjonen over Microsoft's (TM) globale herredømme med ukompatibelt elektroniske varer og utstyr. Det har derfor vært en nærmt uakseptabel opplæring av et begrenset språk til en erfaren programmerer som er vant til ISO internasjonle åpne løsninger. Det er en generell misforståelse at tekst blir til i en utleggsbehandler. Tekst av innholdsmessig verdi blir først nedskrevet rått i et verktøy som er beregnet på manipulering av tegnsett og korrigering. Når teksten er utformet skal den kanskje oversettes. Til slutt skal den på trykk og det er først da utleggsbehandleren kommer inn i bildet. Det har vært påklagd kommisjonen å påskynde prosessen for intuivitet på kommisjonens http-portal i forbindelse med tilsynelatende intet-tilsigende fildesignasjoner. Dette kan forklares med gangen i en utviklingsprosess. I det prosjektet starter har gruppemedlemmene i kommisjonen ingen anelse om hvilke hvilke metadata og derved hvilke fildesignasjoner som er ytterst nødvendig i det initielle arbeidet. Dette er noe som kommer på plass etter planleggsfasen, som ikke bør være større enn testfasen, men atskillig større enn utviklings- og implementeringsfasen. Da denne klagen ble levert for kommisjonen var den ikke ferdig med planleggingsfasen og var heller ikke levert den fulle kravspesifikasjon. Den hadde da, på det tidspunkt, heller ikke gjennomført fildesigneringen. Det ville vært uholdbart for kommisjonen å tilegne relevante fildesignasjoner på grunn av dens dynamiske natur, for å presentere et arbeid som var mindre enn påbegynt. Det har vært påklagd kommisjonen at den lager bitsekvenser som allerede eksisterer. I noen deler av prosjektet er dette sant. mod_fjktrl skal sende datasett til mod_mctrl hente en fil via FTP og lagre den. Dette har vært implementert både i c, java og sh. Kommisjonen endte opp med en enkel trådbasert applikasjon hvor mod_filg, mod_filtr og mod_filtrck kalles opp av samme applikasjon. Det har vært påklagd kommisjonen at den stiller for høye krav om standardisering. Dette er urealistisk og viser at de klagende ikke har satt seg skikkelig inn i prosjektets mål og mening. Den initille utformingen tilbake i november var et hardware sanntidssystem som skulle styre elektromekaniske objekter omkring mennesker i et rom på størrelse med en kvadratmeter. Det ville vært uansvarlig for kommisjonen å ikke ta seriøse beslutninger i arbeid hvor mennesker kan bli skadet eller miste livet. De standardene som kommisjonen har valgt kan implemetenteres i hvilken som helst organisasjon, stor eller liten, uansett produkt eller tjeneste, aktivitet eller uansett forretningsenterprice, offentlig administrasjon eller regjeringsdepartement. Standarder som serien ISO-9000 sikrer en ansvarlig håndtering av prosjektet, kravspesifikasjon og kvalitetssikring. CORBA og ISO POSIX sikrer systemets objektimplementering og dynamiske natur og kan derfor benyttes som erstattende modul i hvilket som helst system. Det har vært påklagd kommisjonen at den ikke begrunner sine valg av standarder eller setter dem opp mot andre løsninger, slik som ikke-standarder og lukkede løsninger. Det ville ikke vært lurt, ut fra oppgavens omfang og gitt det tidsrom som er avsatt til kommisjonen. Alle standarder har sin egen eksepsjonelle forklaring på hvorfor den bør implementeres. Kommisjonen anser det som underforstått, ut fra de seriøse mål som oppgaven har og den tekniske kunnskap som må være tilstede, at en drøfting av internasjonale standarder er utenfor kommisjonens område. Det er gitt en enkel forklaring på standardene i kapittel om "Brukte standarder og teknologier" for å gi et . 11. appendix