/transport

Professor: IC4-togenes computer er den store ubekendte

Hvis Bombardier i Randers skal gøre IC4-togene færdige, så er det fint for Danmark, mener dansk professor, der ser problemerne med togcomputeren som den store udfordring.

Af Birgitte Marfelt, onsdag 20. maj 2009 kl. 13:33

Aftalen mellem DSB og Ansaldobreda kan meget vel gå hen og blive risikabel, mener professor Karl Brian Nielsen, der er leder af Institut for Produktion ved Aalborg Universitet.

Det var Karl Brian Nielsen, der sidste sommer kritiserede IC4-togenes tilstand efter at være blevet forevist en række billeder af togene på Ansaldobredas fabrik i italienske Pistoia.

På den baggrund er han ikke overrasket over, at Ansaldobreda ikke er i stand til at levere færdige IC4-tog, siger han.

Især er han bekymret for togcomputeren.

»Problemet opstår, hvis færdiggørelsen omfatter redesign af togcomputer-løsningen. Men endnu ved vi ikke, hvor omfattende problemet med togcomputeren er, og om det bare kan klares med en afskærmning mod støjstrømme.«

»Hvis det er tilfældet, er det fornuftigt nok at overlade færdiggørelsen til eksempelvis Bombardier, som har erfaring med montage. Det er fint at få togarbejde til Danmark. Det er insoursning, der vil noget,« siger Karl Brian Nielsen.

Netop togcomputeren peger også DSB på som det vigtigste udestående på IC4-togene. Siden starten har den givet Ansaldobreda’s teknikere dybe rynker i panden.

Det er togcomputeren, som DSB har forhandlet med Bombardier om at overtage implementeringen af. Ifølge ing.dk´s oplysninger er der imidlertid langt fra nogen aftale. Derimod er planen først at undersøge prisniveauet på markedet, måske i form af en udbudsrunde.



20. maj 2009 kl 14:07

Carsten Scherrebeck Møller

Professor i hvad?

Det er fint at få togarbejde til Danmark. Det er insoursning, der vil noget,« siger Karl Brian Nielsen.

En sådan udtalelse er livsfarlig. Det er en generel sandhed, at det er godt når Danmark modtager knowhow. Men så er det også sagt. Det er særdeles ikke rigtigt klogt at lade produktion foregå i Danmark når det drejer sig om færddiggørelse af en kompliceret vare. Fordi: Hvem har så ansvaret for at varen virker som den skal? Det har pludselig køberen selv, som svarer til at en turist køber sig et tog og endda selv vil fremstille det i andres fabrikker. Det er en notorisk opskrift på at komme til at betale cirka 100 gange for meget for en vare, en vare der samtidig er så forældet når den er færdig, at den aldrig vil blive anvendt. Der er en sandhed, at når alt dette er hændt, at da er indkøberen måske blevet klogere. En sådan turist vil dog være så svedt samtidig, at han eller hun aldrig nogensinde ønsker at gentage det.

Netop togcomputeren peger også DSB på som det vigtigste udestående på IC4-togene. Siden starten har den givet Ansaldobreda’s teknikere dybe rynker i panden.

Dette er jo morsomt. Man vælger sig en leverandør, der ikke selv tror på at hjernen i varen kan laves. Samtidig tillader man projektet at blive forsinket i årevis, som betyder, at enhver tanke i Italien, om hvordan at lave hjernen, hele tiden bliver ubrugelig, fordi teknologi i hjerner forandrer sig. Lad mig gætte, der er altså gamle DOS-computere i disse tog, eller meget gamle Windows 3.11 computere, eller taler vi om noget der svarer til Windows 95? For novicer lyder sådant måske ikke slemt, men det er katastrofalt hvis en computer-platform i en kompleks vare ikke kan bære igennem.

For at få ro på togområdet, bør Danmark elektrificere hele tognettet og indkøbe standardtog som allerede anvendes i andre lande. Et af problemer med indkøb i Danmark af tog, er at valg af tog anses for at være kulturministerens opgave i samarbejde med Dronningens hofovermester og med et følge af sultne mennesker fra reklamebureauer, samt mennesker der kun ønsker at feste, og som skriger på at Italien vil være interessant, fordi man dér får sol i ansigtet og rødvin i maven. Derfor ender man med et rødlakeret hånddesignet fantasifoster, og når den fest er forbi, valget af toget, fortsætter flokken med at feste i en anden retning, måske at ville bygge et teater. Der er meget langt fra denne verden, til en professor i produktion i Aalborg. Derfor er det min tro, at hans udtalelser bliver misforstået af den genelle tåbelige hob i Danmark. Tåberne, der fester, ønsker jo gerne at høre om at deres fester i det mindste skaber jobs for de fattige i måske Randers. Udmærket, dette, men vanvid, fordi kvalitet og tid og penge dermed allerede da er kylet bort. En køber, der endda er bygherre, må aldrig også være hovedentreprenør, dette er den øverste lov af alle. Overtræd den, og du dør i kviksand.


20. maj 2009 kl 14:54

Anders Jakobsen

Computeren?

Hvis de ikke kan få computeren til at virke, hvordan har de så overholdt DSBs ultimatum?


20. maj 2009 kl 16:48

Jens Madsen

Re: Computeren?

Som regel, er en masseproduceret, afprøvet, og velfungerende løsning det bedste. Det næstbedste, er en løsning man selv står for - og tager ansvaret for. Det trediebedste, er en købt løsning, som ikke fungerer, og hvor leverandøren ikke formår at rette fejlen. Det sidste, er desvære også ofte det samme, som en "bestilt" løsning.

Naturligt, kan vi være nervøs ved, om DSB kan få computeren til at fungere. Dog tror jeg ikke, at det er et problem. Vi har masser af danske virksomheder, som er gode til montage, og mange gode danske ingeniører, som ved meget om strømme og spændinger, og hvordan man skal designe elektronik, så det ikke opstår fejl. Det største problem er, at man mange steder desvære ikke tager efter disse kompetente personer, men i stedet lader hardwareopgaverne løse af softwarefolk, som tror at de da nemt lige kan kode en chip, eller opsætte et par Linux PC'er på netværk, og få den til at styre et tog. Omtrent sådan, blev også XBOX til - og gav problemer.
Det eneste, jeg vil turde overlade til et sådant princip, er pladsreservationssystemet. Og det må ikke have fysisk forbindelse med togets hovedcomputer, for så vil softwarefolkene før eller siden finde en måde at forstyre kommunikationen.


20. maj 2009 kl 17:04

avatar

Chris Bastrup

Re: Professor i hvad?

Nu du snakker om computere i togene kan jeg oplyse dig om at i IC3 togene sidder der Windows 3.11, IR4 sidder der 95 og ET (Øresundstoget) er der meget bekendt 2000.

Så der har Bombardier da fat i den lange ende, men jeg skal ikke kunne sige hvad det er AB har i IC4, det er måske XP eller ME


20. maj 2009 kl 17:06

avatar

Poul-Henning Kamp

Re: Re: Professor i hvad?

Nu du snakker om computere i togene kan jeg oplyse dig om at i IC3 togene sidder der Windows 3.11,[...]

Det oprindelige koncept for IC3 var "Stella" computere fra Lyngsø og DSB var stolte som paver over at "hvert togsæt har over 250 computere".

Den eneste måde jeg har kunnet få det tal til at give mening, er ved at tælle de små plads-reservations displays over sæderne med.

Poul-Henning


20. maj 2009 kl 17:17

Jens Madsen

Re: Re: Computeren?

Lad mig gætte, der er altså gamle DOS-computere i disse tog, eller meget gamle Windows 3.11 computere, eller taler vi om noget der svarer til Windows 95? For novicer lyder sådant måske ikke slemt, men det er katastrofalt hvis en computer-platform i en kompleks vare ikke kan bære igennem.
Normalt anvendes ikke DOS, Windows, WindowsCE, eller windows98 i tog. Måske i togets informationssystem, hvis det besluttes at man kan leve med en permanent fejlbesked. Derimod, anvendes industrielle computere, PLC'er, og decideret skrædersyet hardware der er med et industrielt operativsystem. Disse operativsystemer, er ofte meget simple, og derfor uden fejl. De behøver ikke, at kunne styre en skærm med windows bogstaver, eller at kunne styre alt muligt hardware såsom harddiske, forskellige fabrikanter lydkort osv. Ofte, er det bare en black-box, uden tastatur, skærm, og floppydisk slot, og harddisk. De dele, som operativsystemet normalt står for, er der ikke, så det er ikke behov for et OS. Hvad indeholder de så? Tjah, de indeholder det de skal, og intet andet. Så er det til at overskue, og til at forstå. Ofte, indeholder de et softwarebibliotek til C, der kan indeholde RTOS rutiner, så de håndterer realtidsoperativsystem funktioner. Ved at lægge rutinerne ind i C, så tages kun dem med, som reelt bruges, og det som bruges ikke, er ikke i koden.

Normalt, er en fordel, hvis processorerne er langsomme, da det er tendens til, at software der skrives til meget langsomme processorer, har langt færre fejl. F.eks. vil en processor, der har ca. 10kHz som klokfrekvens, normalt blive kodet så den har omtrent samme svartid uanset opgavens størrelse, og derfor er ikke skjulte bomber i et realtidsproblem. Hvorimod, at en hurtig computer, ofte kodes således at opgavens hastighed afhænger afopgavens størrelse, eventuelt opløftet i n'te, og derfor bliver stor afhængighed mellem den tid som tager at udføre en opgave, og opgavens størrelse. Dette går galt, hvis opgavens størrelse, f.eks. er for lille under test forløbet, eller hvis den teoretisk kan blive større end softwaren er lavet til. Gammelt software, der blev lavet til gamle computere, kunne af praktiske årsager ikke indeholde kode, der blev langsommere hvis opgaven blev stor, og svartiden var konstant. Typisk, blev dengang computerne havde 10 - 100 kHz som klokfrekvens, altid anvendt binære søgemetoder, eller bedre, selv ved opslag i små datamængder, på få hundrede tegn, og selvom datamængden blev øget til mega, eller gigabyte, gik det hurtigt. Det var også før, at nul-terminerede tekster blev opdaget.


20. maj 2009 kl 20:13

Lars Christoffersen

Re: Professor i hvad?

Hvad med kun at skrive om noget du har bare en smule viden om. Kunne du måske forestille dig en computer som ikke står på et skrivebord? Det står dog soleklart at det ikke er Computere du er professor i.


20. maj 2009 kl 21:15

Claus Vind

Re: Re: Professor i hvad?

Normalt, er en fordel, hvis processorerne er langsomme, da det er tendens til, at software der skrives til meget langsomme processorer, har langt færre fejl.

Det har nu nok ikke så meget med hastighed at gøre, som at programmet så er langt mindre.

Der findes masser af overkompliceret, ineffektiv og fejlfyldt realtidskode, som kun overlever pga. processorens hastighed.

Begrænsninger er ofte befordrende - ikke begrænsende - for kreativitet og kritisk sans, både i SW og i kunstverdenen.

Venlig hilsen

Claus


21. maj 2009 kl 01:21

Carsten Scherrebeck Møller

Re: Re: Re: Computeren?

Normalt anvendes ikke DOS, Windows, WindowsCE, eller windows98 i tog.

Enig. Og alligevel. Jeg nævnte dog kun disse arter som et billedsprog, fordi de fleste evner at genkende en sådan rækkefølge.

Men: Alligevel. I industrien, siden cirka 1999, er visse intelligente produkter begyndt at være baseret på en indlejret DOS-computer eller Windows-computer eller en Unix-computer på et lille printkort, blot eksempler. En sådan måde er ofte et totalt overflødighedshorn af en løsning, men det er nemt, og altså gør man det af dovenskab i alle de tilfælde hvor stykomkostninger ikke betyder noget særligt. Som betyder store varer, i størrelser fra store vaskemaskiner og opefter. Derfor, i et togprojekt der efterhånden bliver forsinket i ti år, vil jeg forvente at finde mange arter af computere, lige fra de helt små specialchips der programmeres med en loddekolbe, til fuldt kørende Windows computere, og, endda, kan man risikere at finde computere der anvender virtualisering, dvs. en kunstig måde at bringe en moderne computer til at opføre sig som en gammeldags computer, med årsag: at gammeldags hardware slet ikke længere kan købes, fordi projektet er blevet årevis forsinket.

Jeg kender til sådan smerte personligt, jeg tabte mange penge på et projekt engang, hvor min produkt, som jeg solgte til en kunde, nåede at få en forældet teknologisk platform, fordi min kunde vedblev med at forlange ændringer, og jeg var dum nok dengang til at tillade den glidebane. Som leverandør forsøger man at pine og plage den valgte platform til alligevel akkurat at kunne klare opgaven, indtil man ser i øjnene at det ikke kan bære igennem. Hvis man er meget forudseende, før projektstart, sørger man for at programmere så klogt, at koden kan bæres over på en mere moderne platforme i takt med at tiden går, men det lykkes sjældent, fordi også programmeringsværktøjer forandrer sig voldsomt hele tiden, og fordi nøglepersonale blive pensioneret eller har søgt sig et andet job. Det er desværre sådan, at når projekter bliver forsinket, bliver personalet sønderslidt og forsvinder før projektet kan nå at blive færdigt. Forsinkelser er altid udtryk for at et projekt er i krise, aldrig ansattes dovenskab. Projektkriser skyldes altid mangel på ledelse eller uduelige ledere, af alle arter, og især de ledere der har ansvaret for at tildele penge og vurdere om projekters indhold og metoder og mål overhovedet er realistisk. Mange projekter er dødsdømte før de overhovedet bliver sat i gang, fordi nogle tåber tilfældigvis har magt til at gennemtrumfe nogle ønsker der ikke er spor gennemtænkte. Projekter er ofte legetøj for ledere, en måde at forkæle visse ledere, at de må ønske sig et projekt, måske for at belønne nogle af deres egne kæledægger at de må være projektledere uden at have evner dertil. Jeg har deltaget i mange projekter hvor vi morede os godt, og imens smed millioner bort, det var dengang da jeg var så ung at jeg ikke var ansvarlig.


21. maj 2009 kl 02:00

Jens Madsen

Re: Re: Re: Re: Computeren?

Begrænsninger er ofte befordrende - ikke begrænsende - for kreativitet og kritisk sans, både i SW og i kunstverdenen.
Dette er ofte den store årsag til, at "små" systemer kører bedst. Her, lægges vægten på kreativiteten, og den kritiske sans - og ikke på at lave noget stort og smart. Da systemerne var langsomme, blev man af praktiske årsager nød til at anvende effektive algorithmer. Dengang, kunne du ikke søge selv små datamængder igennem, med linære søgemetoder. Idag, kan du søge mange kilobyte igennem, og ofte er koden ineffektiv skrevet, med databaser i XML, og hvor ordrene analyseres ved at "søge" i linære strenge. Dette er ineffektiv kode, og ofte så går det ud over svartid, og kreativ sans. Endeligt, så er årsagen til, at der anvendes linære søgealgorithmer ofte, at programmøren selv skriver dem, og synes det er nemmest - i stedet for at bruge søgebiblioteket, der håndterer binær søgning, rød-sort træer, og korrekte databaser, der har O(log2) kompleksitet. Hurtige computere, gør kun tingene nemmere, fordi at programmørerne ikke anvender bibliotekerne til søgning mv. men skriver det selv med dårlige algorithmer. Bruges korrekte algorithmer, behøves sædvanligvis ikke større hastighed end nogle få megahertz.

Idag bruges computere med Linux, og Windows, ofte industrielt. De fleste kender DSB's skærme med "der er sket en fejl", og "tryk luk". Trods, at det er et ganske simpelt system, med tekster på en skærm, har man valgt et voldsomt windows system, med harddisk, og masser af muligheder for fejl. Hvor et industrielt system, ikke "kan hænge", og altid har feedback, så der vides at data er korrekt sendt og modtaget, eller data sendes repeterende uafbrudt, således de opdateres hurtigt efter, hvis der opdages fejl, så er dette ikke features der understøttes af Windows og Linux. Et lille computersystem, har oftest ingen startop tid, og det betyder, at ved eventuelle fejl, tager det ingen tid at genstarte systemet. De har en lille chip, der automatisk genstarter på millisekunder, hvis der detekteres en fejl, og der køres korrektion på ram mv, således at eventuelle fejl opdages, rettes, og rapporteres. Fjernes en ledning, og sættes den på igen, vises beskederne straks igen, fordi det detekteres, eller fordi at dataende sendes repeterende. Ved windows, og linux baserede systemer, ses den type grundighed sjældent. Ofte, har de blæsere - hvilket er forbudt i industrielle installationer, da det giver dårligere kvalitet. Der skal anvendes chips, der ikke bliver for varme, og der må ikke bruges systemer med blæser, harddisk, osv. Strømforsyninger, er også noget helt andet i industielle applikationer, hvor der ikke må forekomme blæsere, og hvor at det skal designes så lytter mv. ikke overbelastes. Normale PC strømforsyninger udvikles til at gå i stykker, og ofte belastes kompenenterne med mere end de er lavet til ifølge deres datablade, eller hvor de har en levetid på 2.000 timer. Dette er ikke tilfredsstillende ved industrielle systemer, f.eks. indenfor transport.

Hvis du kun har en infoskærm med ligegyldige oplysninger der ikke giver oplysninger om vigtige indgreb der skal gøres af en operatør, eller andre vigtige informationer, så kan du godt bruge en windows eller linux maskine. Men du må ikke forvente, at de viser det rette. En sådan computer, har ikke de nødvendige fejltjek og automatisk fejlretning, og er ikke designet med henblik på funktion og pålidelighed. De kan ikke bruges til større opgaver, herunder indenfor transport.

Vi har også fået en vaskecomputer, med "linux" eller "windows" inside. Den larmer uafbrudt, takket være dens store blæser. Hvor den gamle, havde et strømforbrug på nogle få milliwatt, så har den nye et forbrug på konstant 50W. Den har "smart" LCD farveskærm, og kan tale. Til vaskecomputer, betyder pålideligheden dog ikke meget, og vi får bare en ny, når blæseren går, eller støv sætter sig, så chipsene overopheder, og det hele går op i røg.

Ved transport området, er kravene i øvrigt ekstra høje. Du hverken kan, eller må, bruge C, eller C lignende sprog, til kodningen. Og dette umuliggør naturligvis operativsystemer som er C baseret, herunder Microsofts, og Linux. Der sættes krav til der i alt kode, kun anvendes sprog, der lever op til bestemte krav, såsom typecheck, rangecheck, osv. som C ikke lever op til. Et C baseret OS, eller rutiner, må ofte ikke bruges, i de vigtige dele af elektronikken. Dertil sættes krav til test og afprøvning, som OS'erne ikke honorerer. F.eks. kan eksistere kode, der aldrig er blevet aktiveret ved tests, og hvor der ikke er fuld styr på, hvem der har lavet det, og hvad koden laver. Det må naturligvis ikke eksistere i et industrielt system, hvor det bruges til noget af betydning, såsom indenfor transport området. Her skal være dokumentation for, at enhver linie er testet, og at der foreligger testvektorer og programmer, der har "aktiveret" den, og det gør at test vektorerne altid er på et vist minimum.


21. maj 2009 kl 08:34

Carsten Scherrebeck Møller

Re: Re: Re: Re: Re: Computeren?

Idag ... ... og ofte er koden ineffektiv skrevet, med databaser i XML, og hvor ordrene analyseres ved at "søge" i linære strenge. Dette er ineffektiv kode, og ofte så går det ud over svartid, og kreativ sans.

Dette skyldes den finansboble, som herskede indtil for nylig. I gamle dage var IT-industrien så lille at vore universiteter kunne levere de nødvendige ansatte, mens, desværre, at de sidste 25 år er gået så stærkt, med så voldsom vækst i behovet for IT-ansatte, at langt de fleste IT-ansatte i dag slet ikke har nogen relevant uddannelse, dvs. de er selvlærte og har kun været på nogle få kurser. Datalogi er desværre så vanskeligt et fagområde, fordi det kræver matematisk forståelse på et højt niveau, at kun de færreste kan lære det, og jeg er desværre iblandt dem der ramler imod loftet. Jeg har en godnatbog som jeg har læst utallige gange uden at fatte ret meget af dybden deri, den er min personlige barriere i faget, desværre: »Foundations of Computing«, af Jozef Gruska, som vistnok er ganske almindelig viden for dataloger.

Alligevel, på trods af mine lave forventninger til hvad IT-ansatte kan i dag, har de altid skuffet mig, og forbløffet mig, fx at kun de færreste i dag kan andet end at skrive en slags Basic og endda kun ved at anvende gigantiske møgbiblioteker af støttekode, dvs. det usleste niveau. Der er masser af programmører der er dygtigere, men der er mange flere der slet ikke er. Mange kender ikke engang til indkapslinger af kode i funktioner, eller til pointere, eller til balancerede træer af data, eller til binære tricks, eller har den mindste viden om hvordan at håndtere runtime-fejl på en betryggende måde, og versionsstyring som metode til kvalitetskontrol af de færdige varer er også meget sjældent, man skal typisk helt op i størrelse som nVidia før sådant fungerer som det skal. Der bliver rundt omkring lavet allerværste spaghetti, og endda undlader man at kompilere, man anvender runtime-kode. XML er også et af de meget dårlige eksempler, for XML er udmærket som sådant, men det bør kompileres, således at de vanvittigt lange variabelnavne bliver erstattet med korte numre, blot et lille eksempel på hvordan man kan gøre en hjemmeside hurtigere. I øvrigt er det ikke så sært at Google banker alle andre ihjel, for Google har hidtil evnet at lave eksplosionshurtige svartider, som er umuligt medmindre at nogen har evnet at tænke sig grundigt om. Jeg er komplet ligeglad med Google, men jeg glæder mig over Googles hidtidige dygtighed, for det er denne evne der har presset fx Microsoft til at tage sig bedre sammen end hidtil. Til gengæld, som er interessant, har Microsoft haft én meget stor styrke, en relativ god kompatibilitet bagud, en hovedårsag til at alverdens selskaber anvender produkterne, fordi de kan bære det meste af alt deres gamle skrammel af software med sig ind i fremtiden.


21. maj 2009 kl 08:54

Carsten Scherrebeck Møller

Re: Re: Re: Re: Re: Computeren?

Der sættes krav til der i alt kode, kun anvendes sprog, der lever op til bestemte krav, såsom typecheck, rangecheck, osv. som C ikke lever op til. Et C baseret OS, eller rutiner, må ofte ikke bruges, i de vigtige dele af elektronikken.

Dette kan ikke være sandt(?). Fordi: Det er jo værktøjet som man kompiler med, der er afgørende, ikke selve sproget. Er der slet ingen professionelle kompilere til sproget C? I min tid, da jeg selv programmerede, anvendte jeg altid Borland Delphi, som ikke var baseret på C, derimod på Pascal, men jeg oplevede ikke at kvaliteten lå i sproget, et udmærket sprog dog, men det var især kompileren og dens funktioner som jeg holdt af, evnerne til at kontrollere grammatiske sammenhænge og også sikre at den kompilerede kode blev lille og hurtig. Dengang kunne man typisk med Delphi lave en exe-fil på nogle få hundrede kilobyte, hvor en tilsvarende exe-fil fra andre værktøjer kunne fylde tyve megabyte, altså en vanvittig kvalitetsforskel. Dengang var jeg i øvrigt nu og da forfatter i månedsmagasinet Alt om Data, før Internet blev moderne, meget længe siden efterhånden.


21. maj 2009 kl 10:01

Lars Christoffersen

Det er ABB Master eller Advant Controllers

Jeg er næsten sikker på at det er ABB's Master eller Advant Controllers der anvendes. Dengang jeg for 20 år siden rodede med ABB blev de programmeret i noget de kalder AMPL(ABB Master Piece Language) der var et grafisk interface med forskellige funktionsblokke, som man sætter sammen. Hvilet OS der kører på Controllerene har jeg ingen anelse om, men jeg kunne forestille mig Wind River's VxWorks eller QNX.


21. maj 2009 kl 10:27

Jens Dalsgaard Nielsen

Re: Det er ABB Master eller Advant Controllers

Inden man laver konspirationsteori om OS, programmeringssprog osv, ville det være rart bare at have en lille ide om hvad det egentlig er i togene...
Alt andet er ikke ret konstruktivt.

I denne tråd spændes der fra xp,linux, qnx(som er en embedded unix), vxworks osv. uden nogen åbenbart har den mindste ide om hvad der bruges - bare en gang FUD.

Kan også være freertos, eCos,bugOS,en rå java maskine osv osv
Pointen er at ingen af os åbenbart ved noget som helst ...

At DSB nok er i en noget trals situation er noget helt andet.


21. maj 2009 kl 10:30

Jens Dalsgaard Nielsen

Re: Re: Re: Re: Re: Re: Computeren?

uanset compiler er bla C unsafe mht range, pointers osv. Det er simpelthen en del af sprogets natur.

Du kan så linte, splinte, teste osv osv og fange en del af det, men ...


21. maj 2009 kl 18:12

Lars Christoffersen

Re: Re: Det er ABB Master eller Advant Controllers

Det er med sikkerhed ABB PLC'ere, men jeg kan ikke huske versionen! Og jeg har, som du rigtigt skriver, ingen anelse som hvilken OS de bruger, men det er et super stabilt og godt produkt! Og du har helt ret at den her diskussion er en gang FUD.


21. maj 2009 kl 18:37

Claus Vind

Re: Re: Re: Re: Re: Re: Computeren?

Dette kan ikke være sandt(?). Fordi: Det er jo værktøjet som man kompiler med, der er afgørende, ikke selve sproget. Er der slet ingen professionelle kompilere til sproget C?

Faktisk er der stadig masser af semantiske uklarheder i C, optimizere der kan introducere fejl osv, men min erfaring er at compilerne efterhånden er rimelig gode. Og så er der masser af C relaterede problemer, som ikke kan checkes statisk (altså ved compiletime).

C++ er mere kompliceret og ofte associeret med væsentligt mere komplekse designs. Jeg har mødt få C++ programmer, som ikke 'leakede' hukommelse, men min erfaringer er hovedsageligt med C, ikke C++.

Der er masser af professionelle C-kompilere, der bruges, også til rimeligt kritiske applikationer, mens f.eks. fly-industri (civil og militær) ofte bruger et sprog, som ADA eller (det meget gamle) Jovial.

Mht Realtids Operativsystemer er der masser af små kerner (kommercielle eller proprietære), ofte af høj kvalitet, så det er sjældent dér problemerne er. I forhold til fejlene i applikationskoden og system designet er det blot en bagatel.

Venlig hilsen

Claus


21. maj 2009 kl 18:54

Claus Vind

Nancy Levenson

Er professor i komplekse systemer og flyteknik ved MIT.

Hun skrev bl.a. en klassisk rapport om Therac-25 ulykken (hvor en terapeutisk strålekanon dræbte eller skadede et antal mennesker pga. en blanding af dårligt systemdesign og dårlig, usikker, SW).

Hende hjemmeside indeholder en lang stribe 'accident-reports', f.eks. Ariane-5, den nævnte Therac-25 rapport oa. samt en gratis pdf af manuskriptet til hendes næste bog (work-in-progress): http://sunnyday.mit.edu/

(Her analyserer hun også et 'friendly-fire' uheld, det kostede 26 mennesker i to UH-60 blackhawk helikoptere livet i det nordlige Irak).

Hun har arbejdet med at udvikle metoder til dels at lave sikre systemer, dels at analysere ulykker (STAMP metoden), så man kommer ud over en ren 'juridisk' ansvarsplacering, men også lærer af hvad der skete.

Hendes tanker er helt i tråd med mine egne erfaringer gennem 25 år (mange med realtidssystemer), bl.a. at en ulykke sjældent skyldes een graverende bommert, men ofte er en kombination af små 'uskyldige' fejl og afvigelser, som skubber systemet 'ud over kanten' til sidst, og derfor ikke bare er et spørgsmål om ren teknik, men også kultur og sociologi.

Venlig hilsen

Claus


21. maj 2009 kl 20:01

Jens Madsen

Re: Nancy Levenson

Det er med sikkerhed ABB PLC'ere
Ved IC3 togene, havde man fra DSB's side, besluttet sig for Lyngsø's Stella computer. Imidlertid, kunne de tyske ingeniører fra Siemens ikke finde ud af at kode togsikkerhedssystemet ind i denne, så den måtte erstattes af PLC'ere. Dette var dengang med til at udsætte leveringen.


22. maj 2009 kl 19:49

avatar

Axel Hammerschmidt

DSBs inforskærme...

kører Windows XP. Det kan man se, når systemet er gået ned - så kommer XP skrivebordet frem. Jeg har osse lagt mærke til det andre steder, bl.a rekvalmeskærmene i stormagasiner.


22. maj 2009 kl 21:12

Jens Madsen

Re: DSBs inforskærme...

Windows og Linux anvendes ofte som info, og endog operatørskærme. Dette var formentligt en af årsagerne til det store strømnedbrud, for nogle år siden. Selvom man ikke "må" anvende en windows skærm, til vigtige informationer - så sker det ofte alligevel, men ikke uden, at der er en "rigtig" operatørskærm, hvor de rette informationer står. Dette var også tilfældet på de atomkraftværker der var ramt af "virus". Men, naturligvis, så var alle vandt til at bruge XP skærmene, at ingen kiggede på de rigtige skærme.

At anvende XP til vigtige informationer, kan derfor være meget farligt. Hvis skærmen så går ned, så det kan ses - så er problemet lille. Men, fryser den fast, så det ser ud som om den fungerer, men viser de forkerte, eller gamle informationer, så er det noget skidt.

Dem, der kodede dem, kunne til dels komme om ved problemerne, ved at lave et program, der hele tiden kører, og tjekker om informationerne som står på skærmen er korrekte - er det tilfældet, sendes en "ok" kode ud til hardwarekredsløb som tilkobles. Dette skal ske, f.eks. mindst en gang per sekund, hvis systemet skulle kunne nå dette. Mangler ok koden, går en sirene igang, og man ved at alt der står på skærmene er det rene vås. Så vil ikke være problemer, hvis en skærm står tilgængeligt med den rette information, og hvis medarbejderne forstår at tyde den. En sådan sirene, der går i gang når inforskærmene viser forkert, manglede dog på atomkraftværkerne, og de lod sig derfor nedlægge af virussen.


22. maj 2009 kl 21:20

avatar

Jakob Gram

Re: Re: Re: Computeren?

Tak. For det er da en forfærdelig misforståelse at man kan bruge Mircosoft OS i industrien....Det er alt for ustabilt (ctrl-alt-del)
hej fra Jakob


23. maj 2009 kl 00:41

avatar

Chris Bastrup

venner venner hør nu her..

Det der gør det farligt at ha windows er når folk bare uhæmmet installere alt mulig crap på dem.

Så længe at man kun installere sw som er testet i hovede og *** sker der ikke noget.

det er også derfor at de bruger windows i marinen i england, de har kun installeret det der skal være på dem og intet andet, plus fjernet muligheden for at folk kan installere noget.

det samme gælder forøvrigt os linux.

http://www.version2.dk/artikel...land


23. maj 2009 kl 06:04

Claus Vind

Re: venner venner hør nu her..

Så længe at man kun installere sw som er testet i hovede og *** sker der ikke noget.

Lige netop den indstilling afliver Nancy Levenson stille og roligt gennem sit arbejde, brug et par timer på hendes website og læs nogle af hendes 'accident reports' f.eks.

(Hun gav også N-version programmering alvorlige hug for mange år siden, så jeg tror også den ide er aflivet nu).

Det er forkert, at man kan teste sig til sikkerhed. Det designer man sig til, ved at holde ting simple og overskuelige. "Simpelt" og "Overskueligt" er sjældent ord, jeg ser brugt om Windows.

Prøv at læse Nancy Levensons uhelds-analyser, i mange tilfælde var det genbrugt, "trusted" software som gik ned, f.eks. fordi man glemte helt banale ting.

I Ariane-5 casen genbrugte man SW som havde kørt fuldstændigt problemfrit i Ariane-4 i mange år, men 'glemte' at den horizontale hastighed på en A-5 kan være 5 gange højere end en A-4, så man fik et banalt overflow.

Men som tidligere sagt var dette bare det udløsende symptom, der var en hel stribe ting, der gik galt i design processen: review, implementation, test-strategi osv forårsagede dette uheld (pris for Ariane-5 uheldet: $5 Milliarder ).

Venlig hilsen

Claus


23. maj 2009 kl 08:42

Jens Madsen

Re: Re: venner venner hør nu her..

Det er forkert, at man kan teste sig til sikkerhed. Det designer man sig til, ved at holde ting simple og overskuelige. "Simpelt" og "Overskueligt" er sjældent ord, jeg ser brugt om Windows.
Det er korrekt. Mange tror, at man kan lave en stor applikation på mange millioner af linier, og så sætte en test-ingeniør, til at bruge brugergrænsefladen nogle timer - hvorefter den er "testet"!

Test, er ikke direkte et "bevis" for fungerende software. Og selvom det oftes påstås at software er testet i "hoved og røv", så er det normalt ikke korrekt. En analyse, af de linier som reelt er udført ved testen, viser det ofte kun er under 40% af den samlede kode! Og alligevel "påstår" man, at det er testet i "hoved og røv". Sandheden er måske, at der er brugt masser af tid på test - men at det overhovedet ikke er testet. Selv hvis 98% af linierne har været udført i testen, ses ofte at det er de sidste 2%, som der er fejl i! Og endeligt, er det at se på om linier har været udførte, jo langtfra nok. Men, er det ikke gjort, kan vi da ikke kalde det nogen test. Vi må som minimum sikre os, at 100% af alle linier har været udført.

Når vi får et produkt til test, så skal det helst være fejlfrit. Er der bare éen fejl - så er denne kun toppen af et isbjerg, og vi må forvente der er en million. Derfor, skal software være 100% fejlfrit når det leveres til test.

Måden, at opnå dette, er at også teste enhver lille del af softwaren grundigt, og at ikke have store programblokke. Et stort program, består af mindre blokke - og de små blokke, må for ingens vedkommende være store, eller blive store. I stedet, må vælges flere blokke, og et bedre hirakisk design, hvor flere blokke, der måske har en samlet funktion, anvender måske 10 blokke under sig. Alle blokke testes så - både underblokke og dem under dem osv, og de blokke som bruger dem. Og, de testes ikke kun éen gang - men mindst to: Først, testes enhver blok af udvikleren, og han står inde for at han har testet den, og er i sin fulde overbevisning om at den fungerer. Inden, at han går i gang med at udvikle den, så tester han alle de blokke den består af, så han kan stå inde for, at han har forstået hvordan de fungerer, og formår at bruge dem. Er der fejl i, er det hans opgave at opdage, og rapportere disse, og ikke "kun" begynde at bruge dem hovedløs, og med viden om, at det ikke fungerer. I langt de fleste tilfælde, hvor der er fejl i software, ved programmørerne det faktisk godt - for de ved, at de blokke de har brugt er deffekte. Og så burde de måske i stedet have anvendt resoucer på, at få det grundlæggende til at fungere, fremfor at bygge på. Er der fejl i byggeblokkene, skal de helst rettes først - og de skal under alle omstændigheder rettes, inden programmøren der udvikler en blok med disse i, kan "underskrive" at nu virker den nye blok.

Altid gælder, at enhver blok skal være testet - og at programmøren skal dokumentere dette, f.eks. i form af testvektorer. De skal kunne køres af andre, så testen kan reproduceres. Derfor, er nødvendigt, at tests kan udføres ved hjælp af testvektorer, og testprogrammer - en test med en mus og en brugergrænseflade kan umiddelbart ikke bruges. Brugergrænsefladen kommer først til sidst, og for så lidt af programmeringen som muligt - helst med et færdigt værktøj til at udvikle det, som man ved fungerer - da det er besværligt at opskrive testvektorer, og testprogrammer for brugergrænseflader med mindre det er kommandolinie orienteret. Som regel, vil et program derfor indeholde en "indre" kommandolinieorienteret brugergrænseflade, af hensyn til f.eks. reproducerbare tests og beviser. At validere, om udseendet skifter på en brugergrænseflade, er altid svært, og det er nødvendigt, hvis man skal sige den testes - så en "optagelse" af mus og tast kombinationer, er ikke nok for at kunne sige den testes. Skal en grafisk brugergrænseflade reelt testes, skal man have software der "kan se", om den gør som den skal. Derfor, holdes den så simpel som muligt, og bygges ovenpå noget kommando orienteret.

Ialt, skal enhver blok være testet mindst to gange - den grundige test, af selve programmøren, som "ved" hvad der bør testes, og som herefter underskriver at han har testet den, og er ved sin fulde overbevisning om at den fungerer og er uden fejl, og vedlægger de test vektorer som er benyttet, samt dokumentation for, at 100% af alle linier er blevet udført ved testen, samt branches og switches i alle deres retninger. Er der noget, som af gode grunde ikke er testet, skal softwaren skrives så denne del holdes på et absolut minimum, og det skal dokumenteres, og begrundes hvorfor den pågældende del ikke er testet, og ikke kan testes. I de fleste tilfælde, skal man anvende programmeringssystemer, så der ikke opstår dele, der ikke testes.

I den sidste ende, har vi en masse kode, der er testet mindst to gange - er det brugt flere gange, er det også testet flere gange. Og når vi kommer til vores "slut" software, så tester programmøren som udvikler det, og sikrer sig at det fungerer. Han underskriver at han er fuldt overbevist om det fungerer korrekt og er uden fejl, og han vedlægger dokumentation i form af test, samt bevis for at hele koden har været udført, osv. Den sidste del, er kun testet éen gang - nemligt af programmøren. Og derfor, sendes den videre til test-afdelingen, som står for slut testen. Her testes softwaren, så vidt muligt i sine rette omgivelser, og på den måde som brugeren ser det. Når vi kommer til dette stadium, har alle dele været testet før, og programmørerne har været overbeviste om deres funktion. Derfor, bør produktet i det store hele være fejlfrit.

I nogle tilfælde, har man ikke omgivelserne tilrådighed under udviklingen, og så skal man i princippet udvikle modeller for disse, så det kan testes.

Nu begynder vi at sige, at det er testet i hoved og røv. Ikke før.

De fleste, som "praler" af deres software er testet i hoved og røv, har testet det et par timer med musen, og fundet et par fejl, som de tænker nok ikke er deres, men del af java. Og så er deres produkt jo fejlfri... Sandheden er, at det overhovedet ikke er testet. Det er kun afprøvet.

Gøres testene efter alle kunstens regler, så betyder de faktisk noget for produktets korrekthed og stabilitet.

Men - stadigt - er de ikke et "bevis".


23. maj 2009 kl 09:48

Claus Vind

Re: Re: Re: venner venner hør nu her..

Jens,

Jeg tror, at vi to er enige - og jeg er glad for du nævner testdækning: det er meget få organisationer, som kan give et objektivt mål for deres testdækning (Det inkluderer også nogen jeg selv har arbejdet for, så jeg skal ikke spille hellig).

Linken her

http://www.schneier.com/blog/a...html

omtaler en sag, hvor man har kigget på sourcen, til et lille indlejret system. Det var ikke kønt. Hvis man følger linken til sagføreren, kan man finde pdf. filer med de findings et uafhængigt firma fandt, bla. kompleksitetsmål for de anvendte rutiner.

Det kræver et specielt 'mind-set' på organisations og ledelsesniveau at håndhæve kvalitetstandarder, ikke bare under udvikling, men også senere under produktion og vedligeholdelse, og det er åh, så nemt at lave en hurtig besparelse her.

Det er også noget Nancy Levenson addresserer, og det er derfor kvalitet ikke kan evalueres som et rent teknisk begreb.

Kvalitet er ikke gratis, men den dag, man står med mega-stort erstatningskrav i en amerikansk retssal, kan investeringen komme hjem med renter.

Venlig hilsen

Claus


23. maj 2009 kl 18:45

Jens Madsen

Re: Re: Re: Re: venner venner hør nu her..

De første fejl, med middelingen, og mangel på præcision, kan være et problem, hvis produktet påstår det har større præcision, end reelt.

De sidste fejl, med mangel på fejlhåndtering af ulovlige indstruktioner, og watch-dog, er naturligvis uacceptabel i nogle sammenhæng. Men, ved et alcometer, kan det diskuteres hvor høje krav som stilles. Som ekesempel, gør de største producenter af routere og accesspoints samme fejl - herunder CISCO! Og det er ved indstallationer, som vi må forvente kører i døgndrift, uden at kræve genstart. Resultatet er, at du måske skal hen og trække ledningen ud af et cisco access point, og sætte det til igen, fordi sikkerheden der tjekker at alt er korrekt mangler, og fordi den ikke indeholder overvågningsfunktion og watch-dog. Det sjove er, at hardwaren som sædvanligt, normalt er udstyret med disse features, da det er standard komponenter. Men de er ikke brugt i koden, og deaktiveret. Om CISCO har nogle produkter, hvor det er håndteret, ved jeg ikke - men deres indmad er ofte Linux, og her er genstart en "besværlig" ting. Så det er ikke rart, at skulle ud i.

Som jeg ser det, er routere, switche, og accesspoints, eksempler på produkter, der absolut skal kodes under hensyn til høj pålidelighed, og det må aldrigt kunne opnås noget, ved at trække stikket ud, og sætte det i igen. Produktet, skal indeholde det nødvendige, til at sikre at alt er i orden, og ellers bringe det i orden. Skulle en meget sjælden gang være fejl, måske på grund af noget ekstern støj, så skal produktet selv genstarte og bringe alt i orden hurtigst muligt. Derfor har produktet watch-dog.

Routere, og switche, skal desuden være robuste overfor hvilken rækkefølge de opstartes i. Selvom en router ikke er startet, og derfor ikke kan give en addresse, så skal det fungere alligevel, og addressen automatisk hentes, når routeren får strøm. Rækkefølgen, som strømmen tilsluttes, skal være underordnet.

Mange routere, har fejl som ovenstående, og "opdaterer" ikke deres status, hvis noget udstyr slukkes og tændes, eller hvis en forbindelse mangler, og senere tilsluttes.

En mindre fejl, er også at der normalt ikke håndteres redundante forbindelser mellem switche. Forbindes flere kabler, mellem to switche, burde opnås redundans, og eventuel større hastighed.

For alcometeret, kan naturligvis være et problem, hvis de to interrupts ikke er disabled, men medfører tilfældigt kode udføres, og hvis interruptet faktisk sker. Men, selvom det måske er medicinsk udstyr, må jeg indrømme jeg ikke betragter fejlen så alvorlig, hvis det ikke går ud over produktets funktion.


23. maj 2009 kl 21:14

Baldur Norddahl

Re: Re: Re: Re: Re: venner venner hør nu her..

En mindre fejl, er også at der normalt ikke håndteres redundante forbindelser mellem switche. Forbindes flere kabler, mellem to switche, burde opnås redundans, og eventuel større hastighed.

Det gør der også. Slå op under spanning tree: http://en.wikipedia.org/wiki/S...ocol og bonding eller link aggregation: http://en.wikipedia.org/wiki/8....3ad


Ny i debatten? Opret en brugerkonto

  • Seneste nyt
  • Mest læste
  • Topdebat
Populært på Facebook
 

Nyhedsbrev

Tilmeld dig vores nyhedsbrev.