SE529634C2 - En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet - Google Patents

En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet

Info

Publication number
SE529634C2
SE529634C2 SE0600449A SE0600449A SE529634C2 SE 529634 C2 SE529634 C2 SE 529634C2 SE 0600449 A SE0600449 A SE 0600449A SE 0600449 A SE0600449 A SE 0600449A SE 529634 C2 SE529634 C2 SE 529634C2
Authority
SE
Sweden
Prior art keywords
control unit
versions
variable values
different versions
memory locations
Prior art date
Application number
SE0600449A
Other languages
English (en)
Other versions
SE0600449L (sv
Inventor
Albert Norberg
Stefan Saellberg
Original Assignee
Abb Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Abb Ab filed Critical Abb Ab
Priority to SE0600449A priority Critical patent/SE0600449L/sv
Priority to CN2007800072224A priority patent/CN101395576B/zh
Priority to PCT/SE2007/000187 priority patent/WO2007100290A1/en
Priority to EP07709390A priority patent/EP1989615A4/en
Publication of SE529634C2 publication Critical patent/SE529634C2/sv
Publication of SE0600449L publication Critical patent/SE0600449L/sv
Priority to US12/202,853 priority patent/US8121709B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/20Comparing separate sets of record carriers arranged in the same sequence to determine whether at least some of the data in one set is identical with that in the other set or sets
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23324Separate update program onboard
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Description

. 15 20 25l 30 35 40 529 654 2 jämförelser av de utmatade värdena från de olika versionerna, det inte finns avbrott eller stömingar i en pågående exekvering av styrenhetsapplikationer.
Det är ett annat syfte med uppfmningen att tillhandahålla ett effektivt sätt att genomföra jämförelserna. Mer specifikt är det ett syfte att tillhandahålla en metod som inte på något sätt påverkar de pågående processerna eller stjäl processortid eller kapacitet från de viktiga uppgiftsskanningarna (task scan).
Dessa syften, bland andra, uppnås genom en metod såsom definieras i krav l, genom ett system såsom definieras i krav 7 och genom en styrenhet såsom definieras i krav 10.
I enlighet med föreliggande uppfinning tillhandahålls en metod för att jämföra variabelvården erhållna från olika versioner av ett applikationsprogram i ett automationssystem.
Systemet inom vilket metoden kan implementeras innefattar en styrenhet för automation av en process genom applikationsprograrnmet lagrat däri. Åtminstone två olika versioner av applikationsprogrammet lagras inom samma styrenhet. Metoden innefattar stegen: att inmata till alla olika versionerna av applikationsprogrammet en insignal erhållen från processen; att exekvera, i styrenheten, samma uppgifter baserat på insignalen för de olika versionerna; att lagra i minnesplatser processrelaterade variabelvården erhållna från exekvcringen av de olika versionerna, varvid minnesplatsema är kända av styrenheten; att hämta från minnesplatserna variabelvården fiån de olika versionema, varvid de hämtade variabelvärdena härleds från motsvarande exekveringssteg för de olika versionerna; och att jämföra de hämtade variabelvärdena då styrenheten är ledig (idle). En ny uppgraderad version av en applikation kan exekveras samtidigt med en för närvarande använd version och utvärderas under sanna produktionsförhållanden genom utnyttjande av reella insignaler, och därigenom elimineras risken för driftstopp i produktionen. Genom uppfmningen görs jämförelserna då styrenheten är ledig, varvid exekveringen av applikationsprogrammet inte störs och de pågående processerna påverkas inte.
Vidare, genom uppfinningen säkerställs det att meningsfulla jämförelser görs, eftersom värdena som jämförs garanteras vara från samma uppgifisskanning.
I enlighet med en utföringsform av uppfmningen genomförs järnförelserna av de hämtade variabelvärdena mellan uppgiftsskanningar. Det finns vanligtvis viss ledig “ tid under uppgiftsskanningar, varvid detta är en lämplig tidsperiod för att genomföra jämförelsema.
I enlighet med en annan utföringsform av uppfinningen stoppas jämförelserna då en ny uppgiftsskarming ska starta och om det inte finns tillräckligt med ledig tid för att köra alla variabelvärdena återupptas järnförelserna under en efterföljande ledig tid. Genom detta särdrag jämförs alla de variabelvården som ska jämföras cykliskt. Detta är en arman aspekt av att säkerställa att processrelaterade uppgifter inte störs och att inga stömingar i produktionen påläggs på grund av j ärnförelserna.
I enlighet med ytterligare en annan utföringsform av uppfinningen är det möjligt att lagra olika variabelvården, om sådana skillnader hittas, på en separat minnesplats. Det är därigenom möjligt att upprätta en fullständig lista på alla registrerade åtskiljande variabelvården om sådant behov skulle existera. Till exempel är användaren i stånd att bestämma om de åtskiljande värdena konvergerar, divergerar eller möjligen stannar på en konstant skillnad och därigenom bestämma om en av versionerna har felaktig funktion och behöver revideras. 10 15 20 25 30 35 529 654 3 I enlighet med ytterligare en annan utföringsform av uppfinningen innefattar metoden vidare steget att presentera funna skillnader för en användare. Denna presentation kan åstadkommas pa vilket som helst önskat sätt, såsom till exempel i fonn av grafer, nummer eller diagram.
I enlighet med ytterligare en annan utföringsform av uppfmningen genomförs jämförelserna av de olika versionerna i syfte att säkerställa funktionaliteten av en ny version av applikationen under riktiga processförhållanden. Andra tillämpningar av uppfinningen är OCkSå tänkbara, såsom för att spåra fel eller liknande. Uppfmningen tillhandahåller således en generell metod för att utvärdera som är tillämpbar för olika syften.
Uppfinningen hänför sig även till ett automationssystem och en styrenhet, varigenom fördelar motsvarande de ovan beskrivna erhålls.
Kort beskrivning av ritningarna Figur l illustrerar schematiskt ett automationssystem.
Figur 2 illustrerar schematiskt exekveringen av olika applikationer i en tidsskala.
Figur 3 visar ett flödesdiagram över stegen innefattade i en utföringsforrn av metoden i enlighet med föreliggande uppfinning. i Detaljerad beskrivning av föredragna utföringsformer Ett sätt att förbättra uppgraderingen av en version av en applikation som styr en process är att exekvera två versioner i sekvens eller på ett kvasiparallellt sätt i en enda styrenhet, såsom beskrivs i den ännu ej avgjorda patentansökningen med titeln ”Metod för utvärdering, ett automationssystem och en styrenh ”, (”Method for evaluation, an automation system and a controller”) tilldelad samma sökande som föreliggande ansökan och innefattad hän' genom referens.
Kortfattat, i enlighet med nämnda ännu ej avgjorda patentansökan tillhandahålls en metod för att utvärdera en applikation som används för att styra en process inom ett automationssystem. Två eller fler applikationsprogram finns inom samma styrenhet och en insignal erhållen från processen inmatas till dem alla. En av applikationsversionerna styr processen medan de andra inte gör det. Samma uppgifter exekveras i styrenheten baserat på insignalen för alla av de olika versionema av applikationen. Därefter genereras en rapport innefattande jämförelser av utmatningama genererade av de olika versionerna av applikationen. Slutligen utvärderas den/de versionen/versionerna som inte används för att styra processen baserat på den genererade rapporten. Eftersom de olika versionerna av styrprogrammet exekveras i sekvens i samma styrenhet och under identiska förhållanden kan uppträdandet för de olika versionerna jämföras innan den nya versionen utnyttjas. Det säkerställs därigenom att en ny version verkligen fungerar i en riktig omgivning innan den lanseras och dyra driftsstopp i produktionen kan undvikas. Om en jämförelse skulle visa på något sätt motsägande resultat, till exempel att de olika versionerna indikerar att motsatta omkopplingsoperationer ska göras, så kan den nya versionen enkelt revideras innan den slutligen installeras. Ett förbättrat sätt att revidera ett automationssystem åstadkoms därigenom. lo' 15 20 25 30 35 40 529 654 4 Emellertid, då två eller fler applikationsprogram exekveras i sekvens eller på ett kvasiparallellt sätt är det viktigt att genomföra jämfórelsema på ett effektivt sätt. Mer specifikt, jämfórelserna bör inte på något sätt påverka de pågående processerna eller stjäla processortid eller kapacitet fiån viktiga uppgiftsskanningar. Föreliggande uppfinning tillhandahåller en metod för att åstadkomma detta.
Figur 1 visar en mycket schematisk skiss över ett automationssystem 1, innefattande en eller fler styrenheter (controllers) 2 som styr vissa processer 6 inom systemet l. Styrenheten 2 kan vara vilken som helst lämplig styrenhet, såsom till exempel en processtyrenhet eller en programmerbar logisk styrenhet (PLC, programmable logical controller). Styrenheten 2 innefattar ett inmatning/utmatningsarrangemang 3, 5 fór att inmata och utmata processrelaterade variabler i syfte att styra systemet l. Styrenheten 2 innefattar vidare en centralenhet (CPU, central processing unit) som exekverar instruktionerna i styrprogrammen, och ett minne fór att lagra instruktioner och data. CPU:n är även ansvarig för kommunikation med andra anordningar (ej visade) och exekveringen av styrapplikationerna.
Figur 1 visar en mycket schematisk skiss över ett automationssystem 1, innefattande en eller fler styrenheter (controllers) 2 som styr vissa processer 6 inom systemet l. Styrenheten 2 innefattar ett inmatning/utmatningsarrangemang 3, 5 for att inmata och utmata processrelaterade variabler i syfte att styra systemet 1. CPU:n är även ansvarig fór kommunikation med andra anordningar (ej visade) och exekveringen av styrapplikationerna.
Ett styrprogram eller applikation läser cykliskt värdena för processinmatningarna och externa variabler (till exempel värden från en annan styrenhet), genomför beräkningar baserat på dessa värden och även på värdena på de interna variablema (till exempel värden erhållna under behandling eller interna tillstånd) och genererar som ett resultat värden till processutmatningar och även till externa variabler. Varje sådan exekvering kallas en skanningscykel (scan cycle) eller uppgiftsskanning (task scan). Styrenheten innefattar en centralenhet (CPU) som lagrar och exekverar instruktionerna i styrprogrammen. CPU:n är även ansvarig fór kommunikationen med andra anordningar och exekveringen av styrapplikationer.
Såsom nämnts tidigare laddas åtminstone två olika versioner Vgamnni, Vu, av ett applikationsprogram ner till styrenheten. För bekvämlighets skull används endast två versioner i det följande for att beskriva uppfmningen, men det inses att flera versioner likväl kan användas. Båda versionerna av applikationen Vgamal och Vny lagras i styrenheten och en insignal från en I/O-enhet kopieras till dem båda. Insignalen behandlas av båda versionerna och respektive utsignalvärden lagras på två respektive minnesplatser. Utsignalvärdena från den för närvarande använda versionen, vanligtvis den gamla versionen, kopieras tillbaka till I/O-enheten och används fór att styra processen.
Genom att köra båda versionerna samtidigt for samma uppgift säkerställs det att jämfórelserna är korrekta och att värdena faktiskt är jämförbara, dvs. är från samma uppgiftsskanning.
Värdena erhållna vid exekvering av de olika versionerna Vgammal, Vny av applikationen kan nu jämföras i syfte att verifiera funktionaliteten av den version som styr styrenheten och således funktionaliteten hos Styrenheten. Det vill säga, genom att jämföra variabelvärdena kan skillnader detekteras och utvärderas och därigenom kan funktionaliteten hos den nya versionen Vu, bestämmas. 10 15 20 25 30 i 35 40 529 634 5 Operatören eller användaren kan jämföra de två versionerna Vgaml, Vny och beroende på resultatet antingen fortsätter eller avbryter en installation av den nya versionen Vny.
Styrenheten vet eller görs medveten om minnesplatserna för varje variabelvärde, dvs. platserna för varj e variabelvärde programmeras in i styrenheten. Om godtyckliga värden ska jämföras måste information om deras minnesplatser genereras och sändas till styrenheten tillsammans med applikationsprogrammet. I enlighet med uppfmningen vet styrenheten minnesplatserna för variabler såsom variabler kopplade till I/O-arrangemanget, accessvariabler och larm. Minnesplatserna för andra variabler, såsom SFC-steg representerade genom en variabel kommer att genereras på annat håll, företrädesvis i ett ingenjörsverktyg (där applikationerna skapas) och ska sändas till styrenheten tillsammans med applikationsprogrammet. Om värden från två versioner av samma applikationsprogram ska jârriföras så behöver styrenheten i allmänhet inte information om vilka par av värden som ska jämföras. Emellertid, om användaren skulle vilja göra andra, ej uppenbara, jämförelser måste information om vilka par av värden som ska jämföras och deras respektive minnesplatser genereras i ingenjörsverktyget. Eftersom styrenheten vet platsen för variabelvärdena för varje respektive version firms det ingen risk för förvirring orsakad av variabler för de två versionerna och det finns inga resulterande stömingar i processen.
Nu med kännedom om minnesplatserna för variablema och kännedom om vilka variabler som ska jämföras går ett bakgrundssubsystem i styrenheten igenom strukturerna efter allting som ska jämföras. Två värden som ska jämföras hämtas, dvs. hämtas från deras respektive minnesplatser och jämförelsen görs. För analoga värden används en så kallad död zon (deadband), det vill säga värdena betraktas inte skilja sig åt om de är inom en sådan död zon. Detta görs i syfte att styrenheten inte ska reagera på signalbruset. Dödzonen kan vara satt som en viss procent, till exempel om skillnaden mellan värdena är inom 0,5 % rapporteras ingen skillnad. Dödzonen kan alternativt implementeras som i förväg bestämda absolutvärden. Företrädesvis, om värdena skiljer sig åt kopieras de och lagras i en separat struktur. All behandling relaterad till jämförelserna görs som en atomär (atomic) operation, dvs. operationen får inte avbrytas. Detta i syfte att garantera att värdena som jämförs härrör från samma uppgiftsskanning.
I en annan utföringsform jämförs inte värdena erhålhta från en eller fler ”dummy” eller passiva versioner med värdena erhållna från versionen som styr processen. Istället jämförs värdena från den passiva versionen med i förväg bestämda värden, till exempel önskade målvärden.
I figur 2 illustreras exekveringen av två olika uppgifter och deras ömsesidiga tidsförhållande. De två versionerna av en applikation exekveras och värdena lagras såsom beskrivs ovan. Sedan kan en annan uppgift genomföras innan en nästa cykel för den första uppgiften genomförs. Det inses att många fler uppgifter än de två. som har illustrerats kan genomföras och genomförs vanligen. Vidare kan uppgifter överlappa varandra, dvs. en viss uppgifi kan avbrytas halvvägs om en annan uppgift, som har högre prioritet, är schemalagd att exekveras. Det fmns emellertid korta lediga tider (idle times), ATèd och ATf íg edíg, mellan uppgifter, under vilka en jämförelse i enlighet med uppfmningen kan genomföras. Genom att genomföra jämförelserna mellan uppgiftsskarmingarna, det vill säga då styrenheten är ledig, görs inga avbrott av uppgifterna och processerna påverkas inte av behandlingen av värdena. Alla uppgifter har företrädesvis en högre prioritet än sådana jämförelser, eftersom de härrör till en pågående process. 10 15* 20 25 30 135 i 52-9 634 6 Det kanske inte finns tillräckligt med tid under en enda ledig tid, till exempel A flšdlg för att jämföra alla de lagrade värdena eller par med variabelvärden. Jämförelserna fortsätter då under nästa lediga tid ATådig och företrädesvis från det senaste jämförda paret med värden. Annorlunda uttryckt, så länge som en ny uppgíftsskanning inte ska starta jämförs värdena och då en ny uppgiftsskarining ska börja avstannar jämförelserna tills en ny ledig tid förekommer. Då nästa lediga tid börjar fortsätter jämförelsema där de avstannade. På detta sätt jämförs alla par av variabelvärden, som ska jämföras, cykliskt.
Om jämförelsen av två värden visar att de skiljer sig åt kan dessa värden jämföras oftare än andra värden, eftersom det vanligen är mycket troligt att dessa värden kommer att fortsätta att skilja sig åt. Detta kan göras genom att sätta de variabelpar som skiljer sig åt i en speciell lista, en högíntentionslista (high-intention list), som kommer att gås igenom oftare än hela strukturen med variabelpar.
Vanligtvis då en viss uppgift genomförs lagras de motsvarande värdena på vissa minnesplatser och då samma uppgift genomförs nästa gång skrivs värdena över med nya värden. I en utföringsform lagras värdena från en uppgiftsskanning på en annan minnesplats också, därigenom möjliggörande en historik eller att ett register lagras. En användare kan sedan bestämma om värdena divergerar, konvergerar eller om de förblir på samma skillnad och vidta lämpliga åtgärder.
.Tämförelserna görs företrädesvis i styrenheten, varvid kommunikationslasten mellan styrenheten och en operatörs arbetsstation, såsom en PC eller liknande kommer att vara väsentligt mindre än om värdena skulle jämföras i PC:n. Kommunikationen av värden som skiljer sig åt kan också göras mellan uppgiftsskanningar i syfte att inte störa exekveringen av applikationerna. ~ Då skillnader har hittats i styrenheten ska de presenteras för användaren av systemet.
Värdena som har befunnits skilja sig åt packas och kodas till kommunikationstelegram eller paket, vilket möjliggör en sändning till en PC på begäran, eller automatiskt. Om en särskilt alarmerande skillnad skulle förekomma är det möjligt att visa den framhävd, till exempel presentera den som blinkande värden eller utlösa ett hörbart larm.
I en alternativ utföringsform lagras alla värdena, packas och visas för användaren.
De mest kritiska värdena i en applikation är värdena som påverkar omgivningarna för applikationen och i synnerhet processen, dvs. värden på variabler kopplade till I/O-utkanaler, villkor till larmobjekt, värden på variabler kopplade till accessvariabler (det vill säga kommunikationsvariabler som är synliga och åtkomliga från andra applikationer) och tillstånd för SFC-steg. Emellertid inses det att vilka som helst värden i applikationen kan jämföras. Jämförelsen av värden från olika versioner av en applikation kan även användas i felsökning.
I figur 3 visas en sammanfattning av stegen innefattade i metoden enligt föreliggande uppfinning i ett flödesdiagram. Det inses att alla stegen inte nödvändigtvis är inkluderade. Metoden 100 för att utvärdera en applikation som styr en process inom ett automationssystem börjar med inmatning av insignaler till de olika versionerna av en applikation, steg llO. Därefter görs exekveringen 120 av de två versionerna av applikationen. Detta genomförs i styrenheten och 10 15 20 25 529 634 7 exekveringen av båda versionerna genomförs i sekvens för båda versionerna. Därefier lagras 130 processrelaterade variabelvärden erhållna från exekveringen av de två versionerna på minnesplatser. I nästa steg hämtas 140 variabelvärden från de olika versionerna från minnesplatsema. Därefter järniörs 150 de hämtade variabelvärdena. Vanligtvis är de variabelvärden som ska jämföras variabelvärden härledda från motsvarande exekveringssteg i de olika versionerna, men vilka som helst par av värden kan naturligtvis jämföras. Efter steget att jämföra bestäms det om värdena skiljer sig åt och varje detekterad skillnad lagras 160 på en annan, separat minnesplats. Slutligen presenteras 170 skillnaderna för en användare, varvid användaren kan besluta huruvida den nya versionen ska avslutas eller fortsätta och ersätta den nuvarande versionen med den, beslutet är således baserat på huruvida skillnaderna är acceptabla eller inte. Det säkerställs därigenom att en ny version verkligen fimgerar i en riktig omgivning innan den lanseras och dyra driftsstopp i produktionen kan undvikas. Om en jämförelse skulle visa på något sätt motsatta resultat, till exempel att de olika versionerna indikerar att motsatta omkopplingsoperationer ska göras, kan den nya versionen enkelt revideras innan den slutligen installeras.
I beskrivningen har två versioner av en applikation beskrivits, men tre eller fler versioner kan genomföras i en altemativ utföringsform. Till exempel, om det finns två lika nya versioner, Vu, 1 och Vny 2, varvid en av dem är avsedd att ersätta en nuvarande version av en applikation, kan alla tre versionema köras parallellt, dvs. de två versionema Vny 1, Vny 2 och den för närvarande använda Vgammal- Sammanfattningsvis tillhandahåller den innovativa metoden ett effektivt sätt att jämföra processrelaterade variabelvärden vid exekvering av olika versioner i samma styrenhet. Den presenterade metoden för att jämföra värden och generera en skillnadsrapport stör inte de pågående processerna, eftersom de görs mellan uppgiftsskanningar och tar inte kapacitet inom styrenheten då sådan kapacitet behövs för processerna. Metoden beskriver vidare hur data ska organiseras och hämtas på ett lämpligt sätt.
Ett förbättrat sätt att revidera ett automationssystem åstadkoms därigenom.

Claims (11)

10 15 20 25 30 529 634 8 Patentkrav
1. l. Metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram i ett automationssystem, varvid nämnda system innefattar en styrenhet för automation av en process genom ett applikationsprogram lagrat däri, kännetecknad av att metoden innefattar stegen: - att inmata till alla av åtminstone två olika versioner av applikationsprogrammet, vilka versioner finns inom samma styrenhet, en insignal erhållen från nämnda process, - att exekvera, i styrenheten, samma uppgifter baserat på nämnda insignal för de åtminstone två olika versionerna av applikationsprogrammet, - att lagra på minnesplatser processrelaterade variabelvärden erhållna från exekveringen av nämnda åtminstone tvâ versioner, varvid nämnda minnesplatser är kända av styrenheten, - att hämta från minnesplatsema variabelvärden erhållna från de olika versionerna, varvid nämnda hämtade variabelvärden är härledda från motsvarande exekveringssteg av nämnda versioner och - att jämföra nämnda hämtade variabelvärden då nämnda kontroller är ledig.
2. Metod enligt krav 1, varvid nämnda steg att jämföra hämtade variabelvärden genomförs mellan uppgifiscykler.
3. Metod enligt krav l or 2, varvid nämnda steg att jämföra stoppas då en ny uppgiftsskanning ska starta, och återtas där den stoppades då styrenhet åter är ledig.
4. Metod enligt något av de föregående kraven, vidare-innefattande, om skillnader mellan variabelvärdena från de olika versionerna hittas, steget att lagra de åtskiljande variabelvärdena på en separat minnesplats. '
5. Metod enligt något av de föregående kraven, varvid nämnda metod vidare innefattarsteget att presentera furma skillnader för en användare.
6. Metod enligt något av de föregående kraven, varvid nämnda jämförelse görs i syfte att etablera fiuiktionaliteten av en ny version av applikationen under reella processförhållanden.
7. Automationssystem innefattande en styrenhet, varvid nämnda kontroller har lagrat en applikation för styrning av en process inom automationssysternet, kännetecknat av att systemet innefattar: - organ för inmatning till alla av åtminstone två olika versioner av en applikation, vilka versioner firms inom styrenheten, en insignal erhållen från nämnda process, 10 15 20 125 '30 529 634 9 - organ för att exekvera, i styrenheten, uppgifter baserat på nämnda insignal för de åtminstone två olika versionerna av applikationen parallellt, - organ för att lagra på minnesplatser prooessrelaterade variabelvärden erhållna från exekveringen av nämnda åtminstone två versioner, varvid nämnda minnesplatser är kända av styrenheten, - organ för att hämta från minnesplatserna vatiabelvärden från de olika versionerna, varvid nämnda hämtade variabelvärden är härledda från motsvarande exekveringssteg i nämnda versioner och - organ för att jämföra nämnda hämtade variabelvärden och bestämma om skillnader existerar mellan variabelvärdena.
8. Automationssystem enligt krav 7, vidare innefattande organ för att lagra på ytterligare minnesplatser åtskilj ande variabelvärden.
9. Automationssystem enligt krav 7 eller 8, vidare innefattande organ för att presentera funna skillnader for en användare.
10. Styrenhet för styrning av processer inom ett automationssystem, nämnda styrenhet innefattande en applikation och ett inmatnings/utmatningsarrangemang (3, 5), kännetecknad av att nämnda styrenhet (2) innefattar: - åtminstone två olika versioner av nämnda applikation, varvid nänmda versioner är anordnade att ta emot samma data från nämnda inmatnings/utrnatriingsarrangemang (3, 5), - organ för att exekvera samma uppgifter baserat på nämnda insignal för de åtminstone två olika versionerna av applikationsprogrammet, - organ för att lagra på minnesplatser processrelaterade variabelvärden erhållna fiån exekveringen av nämnda åtminstone två versioner, varvid nämnda minnesplatser är kända av styrenheten, - organ för att hämta från minnesplatsema variabelvärden från de olika versionerna, varvid nämnda variabelvärden är härledda från motsvarande exekveringssteg av närrmda versioner och - organ för att jämföra nämnda hämtade variabelvärden då nämnda kontroller är ledig.
11. Styrenhet enligt krav 10, varvid nämnda I/O-arrangemang innefattar förbindelser som förbinder nämnda styrenhet till sensorer och manövreringsorgan belägna inom nämnda automationssystem och relaterade till processer
SE0600449A 2006-03-02 2006-03-02 En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet SE0600449L (sv)

Priority Applications (5)

Application Number Priority Date Filing Date Title
SE0600449A SE0600449L (sv) 2006-03-02 2006-03-02 En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet
CN2007800072224A CN101395576B (zh) 2006-03-02 2007-02-28 比较方法、自动化系统以及控制器
PCT/SE2007/000187 WO2007100290A1 (en) 2006-03-02 2007-02-28 A method for comparing, an automation system and a controller
EP07709390A EP1989615A4 (en) 2006-03-02 2007-02-28 COMPARATIVE METHOD, AUTOMATION SYSTEM AND CONTROLLER
US12/202,853 US8121709B2 (en) 2006-03-02 2008-09-02 Method for comparing, an automation system and a controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0600449A SE0600449L (sv) 2006-03-02 2006-03-02 En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet

Publications (2)

Publication Number Publication Date
SE529634C2 true SE529634C2 (sv) 2007-10-09
SE0600449L SE0600449L (sv) 2007-10-09

Family

ID=38459323

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0600449A SE0600449L (sv) 2006-03-02 2006-03-02 En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet

Country Status (5)

Country Link
US (1) US8121709B2 (sv)
EP (1) EP1989615A4 (sv)
CN (1) CN101395576B (sv)
SE (1) SE0600449L (sv)
WO (1) WO2007100290A1 (sv)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE531389C2 (sv) * 2006-03-01 2009-03-17 Abb Ab Metod för hantering av olika versioner av en applikation och ett automationssystem
US20080189718A1 (en) * 2007-02-02 2008-08-07 The Mathworks, Inc. Scalable architecture
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
US8549476B2 (en) * 2009-07-30 2013-10-01 Hewlett-Packard Development Company, L.P. Comparison of result of program operation to result of an operation of a different version of the program
EP2309354B1 (de) * 2009-10-01 2013-03-20 Siemens Aktiengesellschaft Vorrichtung und Verfahren zur Simulation
US20140088880A1 (en) * 2012-09-21 2014-03-27 Life Technologies Corporation Systems and Methods for Versioning Hosted Software
US9117079B1 (en) * 2013-02-19 2015-08-25 Trend Micro Inc. Multiple application versions in a single virtual machine
US10275329B2 (en) * 2017-02-09 2019-04-30 Red Hat, Inc. Fault isolation and identification in versioned microservices
CN111679600B (zh) * 2020-05-28 2021-12-28 深圳市英维克信息技术有限公司 控制系统的比较方法、控制终端和计算机可读存储介质
CN112596770B (zh) * 2020-12-24 2023-08-18 潍柴动力股份有限公司 一种数据处理方法、装置、电子设备和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491625A (en) * 1993-12-23 1996-02-13 The Dow Chemical Company Information display system for actively redundant computerized process control
US20040015947A1 (en) * 1999-02-17 2004-01-22 Qing Gong Client to client distribution through a network
WO2000077583A1 (en) * 1999-06-11 2000-12-21 The Foxboro Company Control system with improved installation
US6788980B1 (en) * 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6501995B1 (en) * 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6986132B1 (en) * 2000-04-28 2006-01-10 Sun Microsytems, Inc. Remote incremental program binary compatibility verification using API definitions
US6951017B1 (en) * 2001-07-27 2005-09-27 Lsi Logic Corporation Design system upgrade migration
DE10144050A1 (de) * 2001-09-07 2003-03-27 Bosch Gmbh Robert Verfahren zur Softwareverifikation für Steuereinheiten und Verifikationssystem
CN1581917A (zh) * 2003-08-15 2005-02-16 明基电通股份有限公司 输出图像参数的校正方法
JP3915808B2 (ja) * 2003-09-26 2007-05-16 オムロン株式会社 プログラマブルコントローラおよびプログラマブルコントローラシステムならびにcpuユニット

Also Published As

Publication number Publication date
US8121709B2 (en) 2012-02-21
US20090069906A1 (en) 2009-03-12
CN101395576A (zh) 2009-03-25
CN101395576B (zh) 2012-01-04
SE0600449L (sv) 2007-10-09
EP1989615A4 (en) 2010-06-16
WO2007100290A1 (en) 2007-09-07
EP1989615A1 (en) 2008-11-12

Similar Documents

Publication Publication Date Title
SE529634C2 (sv) En metod för att jämföra variabelvärden erhållna från olika versioner av ett applikationsprogram samt ett automationssystem och en styrenhet
SE529676C2 (sv) En metod för att utvärdera en applikation, ett automationssystem och en styrenhet
JP2015018553A (ja) 状態間の遷移に対するユーザ定義可能な動作を有する状態マシン機能ブロック
RU2007109723A (ru) Устройство диверсифицированного безопасного управления, в частности, для железнодорожной системы
TWI528122B (zh) 程式編寫裝置
CN105589408B (zh) 数值控制装置
SE524639C2 (sv) Feldetektering i en industriell kontroller under säkerhetsrelaterad styrning
CN101320324A (zh) 处理机装置及复合条件处理方法
JP6846405B2 (ja) 条件付きロードの抑制
JP4328969B2 (ja) 制御装置の診断方法
JP2004199528A (ja) 監視制御システム
KR102501187B1 (ko) 배리어 구현 방법 및 시스템
US20220179407A1 (en) Monitoring method, monitoring apparatus, and program
US11579594B2 (en) Method and engineering system for modifying a program of an industrial automation component
JPH11316685A (ja) コントローラを用いてフィールドバスを介してフィールドデバイスを遠隔制御および/または遠隔操作する装置
JP3456772B2 (ja) プラント運転制御装置
KR102531567B1 (ko) 데드락 회피 방법 및 시스템
KR101118593B1 (ko) Vliw 명령어 처리 장치 및 방법
JPH08211906A (ja) コントローラ装置
KR20160137349A (ko) 플랜트 조작 장치, 플랜트 조작 방법, 및 플랜트 조작 프로그램
JPH0736535A (ja) プラント操作手順生成システム
JPH09282160A (ja) 多分岐制御方式
JPH11265201A (ja) 多変数プロセス制御システム
JPS61183705A (ja) プログラマブルコントロ−ラの演算トレ−ス処理方法
JPH02171937A (ja) アドレス一致停止回路