Saturday 9 September 2017

Glidande Medelvärde Stege Logik


Vad man ska veta om PLC-stegdiagramprogrammering. När en PLC används främst för att ersätta reläer, tidtagare och räknare, är det svårt att slå enkelt och användbarhet för stegdiagramprogrammering. Dina möjligheter att acceptera programmering i stegdiagramformat är en av orsakerna till framgången med programmerbara logiska kontroller-PLC i branschen. De många likheterna mellan stegendiagrammen som användes för att programmera PLC och relästeglogiken som tidigare användes för att styra industriella system, underlätta övergången från hårdvarna reläsystem till PLC-baserade system för många I elindustrin Och möjligheten att övervaka PLC-logiken i stegdiagramformat gjorde också felsökning lättare för dem som redan är bekanta med reläbaserade styrsystem. Även om det finns många högre språk på nuvarande nivå för PLC-programmering, är de flesta system fortfarande Programmerad i stegdiagramformat på grund av dessa fördelar. Anatomi av ett stegardiagram. Logiken i en stegendiagra M strömmar vanligtvis från vänster till höger Diagrammet kan delas upp i sektioner som kallas trappor, vilka är ungefär analoga med spåren på en stege. Varje spår består vanligtvis av en kombination av ingångsinstruktioner. Dessa instruktioner leder till en enda utmatningsinstruktion men spår som innehåller funktion Blockinstruktioner kan vara mer komplicerade. Varje inmatnings - eller utmatningsinstruktion tilldelas en adress som visas nedan anvisningarna i Fig. 1, på sidan 22, vilket anger läget i PLC-minnet där läget för den instruktionen är lagrad. Funktionsblockinstruktioner kan innefatta en eller flera Adresser för att lagra parametrar som är relaterade till funktionen som de utför. Nummerets adressformat beror på det schema som används av den särskilda tillverkaren och det kan anges i ett binärbaserat numreringssystem. Se sidofältet på sidan 26. Ett namn kan också vara Förknippad med varje adress som visas ovan instruktionen i Fig 1 för att göra stegen diagram lättare att tolka. Typ av instruktioner. Laddare d Iagram-programmering gör det möjligt för PLC att utföra flera olika typer av uppgifter, inklusive booles logik, timing, räkning, aritmetik och specialfunktioner. Vi ska diskutera de grundläggande instruktionerna och funktionsblockinstruktionerna, som är vanliga för nästan alla PLC. Förutom dessa instruktioner, är de flesta PLC stödjer många utökade instruktioner för att utföra mer komplicerade uppgifter. Boollean logik Boolean logik är faktiskt vad PLC och reläsystem utför. Den rättsliga verksamheten i Booles logik är AND, OR, och NOT OCH-funktionen betyder helt enkelt att alla ingångarna måste vara ON för Utgången är ON på analogt sätt med reläkontakter som är anslutna i serie. OR-funktionen betyder att utgången är PÅ om minst en av ingångarna är ON på analogt sätt med reläkontakter kopplade parallellt. INTE-driften innebär att utsignalen är AV om ingången är ON och vice versa den är analog med en normalt sluten reläkontakt För att beskriva situationen i Rad 1 i Fig 1 med hjälp av Boolean logik kan vi till exempel Y att Output 201 är PÅ om Input 101 OR 102 är ON och Input 103 är INTE ON. Relay instruktioner PLCs utför boolsk logik med hjälp av grundläggande reläanvisningar. Vanliga ingångsinstruktioner är undersökta på normalt öppen kontakt och avkänning av normalt sluten kontakt. Inmatningsanvisningar kan Användas för att undersöka antingen tillståndet för externa PLC-ingångar eller interna bitar i PLC-minnet. Undersökningsinstruktionen är PÅ om ingången eller biten som undersöks är PÅ undersökningsinstruktionen är PÅ om ingången eller biten som undersöks är AV Undersökningsanvisningarna kan anslutas i serie och parallell i vilken kombination som helst för att utföra nästan vilken Boolean logikfunktion som helst och resultatet kan anslutas till en reläspolningsutgångsinstruktion. Reläspolningsinstruktioner kan användas för att styra antingen externa PLC-utgångar eller interna reläspolarbitar I PLC Du kan se ett exempel på användningen av reläinstruktioner i Rung 1 i Fig 1. Tidsinstruktioner De grundläggande tidsinstruktionerna är fördröjning och fördröjning med dela Y timers, sänds utgången som hör samman med tidsinstruktionen ON någon viss tid efter att ingången är på, men den stängs av omedelbart när ingången är avstängd. Vid avstängningstimer aktiveras utgången omedelbart när ingången är Slås PÅ Men den är fortfarande PÅ under en viss tidsperiod efter att inmatningen har stängts av, men innan den går OFF. Timing instruktioner är vanligtvis anslutna som instruktioner för reläspolar i stegdiagrammet, så att en kombination av ingångsförhållanden kan programmeras till Utlösa dem När en tidsinstruktion skapas i PLC-programmet, är utrymme reserverat för tidpunktens löpvärde och det förinställda värdet vid vilket timern ska gå och programmeraren måste ställa in det förinställda värdet till önskat nummer när instruktionen läggs in Statusen Av timerutgången kan kontrolleras med undersökningsanvisningarna för användning i andra steg i programmet. Diverse kombinationer av fördröjning och fördröjningstider kan användas för att utföra mer komplicerade Funktioner som till exempel intervall - eller cykeltiming En enkel fördröjningstidsinstruktion visas i Rung 2 i Fig 1.Konstruktionsinstruktioner Grundräkningsinstruktionerna innehåller uppräkning, nedräkning och återställningsfunktioner. Uppräkningen Instruktion ökar enkelt värdet på en räknare med 1 varje gång en uppåtgående OFF till ON-övergång detekteras i ingången. En nedräkning instruktion gör det motsatta, vilket minskar räknevärdet med 1 på varje uppåtgående övergång av ingången. När värdet av Räkningen når eller överstiger ett förinställt nummer, matas utgången från en räknarinstruktion. Återställningsinstruktionen återställer värdet av räkningen till 0 eller till ett förutbestämt återställningsvärde. Ett positivt återställningsvärde kan exempelvis användas för en nedgång Räkneverk som förväntas räkna ner till 0 Som med tidsinstruktioner är vanliga instruktioner vanligen kopplade som reläspolningsinstruktioner i stegdiagrammet och platsen är reserverad för räkningsvärdet och förinställt turvärde när Instruktionen skapas i PLC-programmet. Counter-instruktioner har vanligtvis den extra funktionen, eftersom de kan hänvisas till samma adress, så att uppåt, nedåt och återställningsåtgärderna kan utföras på samma räknare om så önskas. Kan kontrolleras med undersökningsanvisningarna för användning i andra steg i programmet Rung 3 i Fig 1 visar en typisk räkningsinstruktion. Ritmetiska instruktioner Nästan alla PLC har enkla stegschematinstruktioner för att lägga till, subtrahera, multiplicera och dela upp två tal A Stegen rung för en instruktion som används för att utföra en aritmetisk operation har vanligtvis tre delar Först är ingångsförhållandena som måste vara sanna för att beräkningen ska kunna äga rum Det kan vara en kombination av undersökningsanvisningar För det andra är de två numrenas placeringar Som drivs på dessa platser, går ofta in i stegdiagrammet för att få instruktioner, som liknar undersökningsanvisningar och som berättar för programmet var man hittar t Han talar i minnet Den tredje och sista delen av en aritmetisk stegen rung är den utmatningsplats som den vanligtvis anges som en adress som tilldelats den faktiska aritmetiska instruktionen, -, x eller som liknar en reläspolningsinstruktion. Varje gång ingångsförhållandena Är uppfyllda, hämtas de två numren från ingångslägena, den angivna aritmetiska operationen utförs och resultatet sätts i utmatningsplatsen Flera aritmetiska instruktioner kan kopplas för att utföra mer komplexa operationer genom att tilldela utgångar från tidigare steg som ingångar i efterföljande Rungs En enkel tilläggsinstruktion visas i Rung 4 i laddningsdiagrammet för Fig 1. En annan grupp av aritmetiska instruktioner är de jämförande instruktionerna, vilka bestämmer om ett tal är mindre än, lika med eller större än ett annat nummer. De är programmerade i på samma sätt som de aritmetiska operationerna varje gång ingångsvillkoren är uppfyllda, är den angivna jämförelsen mindre än eller större än gjord. Utgångsbiten assi gned till instruktionen slås PÅ om jämförelsen är sann A jämför mindre än instruktion visas i Rung 5 i Fig 1.Funktionsblockinstruktioner. De grundläggande stegendiagraminstruktionerna som beskrivits är bra för att utföra många enkla uppgifter, men ibland blir det mer Komplicerat Vad händer om det är nödvändigt att programmera ett skiftregister, stapla eller processera regulatorn, till exempel Eller kanske det är en önskan att konfigurera en seriell kommunikationsmodul eller en nätverksanslutning. Även om dessa komplexa uppgifter förmodligen kan programmeras med kombinationer av standardinstruktionerna, PLC-tillverkare har infört funktionsblock för att göra programmering av några av de vanligaste uppgifterna enklare. Liksom en aritmetisk rung, en rung som innehåller ett funktionsblock har tre delar Först är inmatningsförhållandena som åter består av kombinationer av undersökningsinstruktioner Det kan vara flera Inmatningsförhållandena, men eftersom funktionsblockinstruktioner ofta har flera ingångar, kommer funktionen blo Ck själv, som kan innehålla platser för många parametrar som måste ställas in för att styra dess åtgärd. Slutligen finns utgångar som liknar reläspolar och som tillåter funktionsblocket att interagera med andra spår i programmet. Allt givet funktionsblock kan ha en eller flera utgångar Numeriska utgångar kan användas av andra steg som ingångar till aritmetiska instruktioner och reläspolbit-utgångar kan undersökas med undersökningsanvisningarna. Många PLC-tillverkare har nu konverterat timing, räkning och aritmetiska instruktioner till de mer användarvänliga funktionsblockformat och programmeringsdokumentationen tillgänglig för en specifik PLC kommer att förklara programmeringen av de olika tillgängliga funktionsblockinstruktionerna i detalj Rung 6 i laddningsdiagrammet i Fig 1 visar ett exempel på ett funktionsblock som används för att skicka data över en network. As PLCs tillämpas på alltmer komplicerade uppgifter, och som människor i elindustrin blir mer bekväma med datorprog Ramming, är användningen av språk på hög nivå för PLC-programmering säkerligen att öka. Tilläggen av utökade och funktionsblockanvisningar till de grundläggande instruktionerna som representerar reläer, tidtagare och räknare har dock hjälpt stegdiagrammering att förbli ett flexibelt och genomförbart verktyg för många PLC-applikationer. Kunskap om grunderna för PLCs - Del 1, oktober 1995, s. 20.LA Bryan och EA Bryan, Programmerbar Controllers Theory and Implementation, Industrial Text Co 1988.RELATERad ARTIKEL VARFÖR ANVÄNDNING AV BINARY NUMBER SYSTEMS. Unfortunately använder inte datorer och mikroprocessorer Samma siffror som vi lärde oss i grundskolan Människor lär sig att göra matematik med decimalbaserade 10-tal, men mikroprocessorbaserade system som PLC är i sig binära eftersom de är baserade på solid state-switchar som kan vara antingen ON eller OFF Numerically, binär Bas-2-värden representeras helt enkelt av antingen siffrorna 0 OFF eller 1 ON Flera binära siffror måste användas för att representera antal praktisk storlek, så binära tal representeras vanligtvis av 8, 16 eller 32 bitar. Eftersom långa bitar av bitar är besvärliga för människor att hantera, binära siffror konverteras ofta till andra nummersystem när de används för praktiska ändamål som PLC adressering Hexadecimal bas-16 och oktalbas-8 är de två mest popu Låter sådana system i PLC-domänen Varje hexadecimal siffra kan representera 4 bitar, medan varje oktal siffra representerar 3 bitar. Det är också ett hybridschema som kallas binärkodad decimal BCD, där varje siffra med ett standard decimaltal representeras av en grupp av 4 binära Siffror Tabellen ovan visar en jämförelse av dessa olika numreringssystem. Ryan G Rosandich är biträdande professor, Engineering Management, University of Kansas Regents Center. Sakerna Internet IoT kopplar alla och allt detta massiva tekniska skiftet påverkar hur företag interagerar med sina Datacenter Det påverkar också hur snabbt företag kan reagera när ett problem uppstår Ladda ner den här vitboken för att lära dig hur stor data och analys som påverkar datacentret och hur du kan hantera ditt moderna datacenter behöver More. I använder RSlogix 5000 ladderlogik vet inte hur man använder FB för ST logik och jag behöver hitta det glidande medlet för de senaste 200 objekten över en cull-flipper för att se wh Vilka objekt som passerade och vilka som slogs bort. Jag förstår inte ändamålet, men för många frågor ställs och svar ges men de är de rätta svaren på fel fråga. Om jag vill veta vilka föremål som slogs bort skulle jag behålla en cirkulär grupp med noll för elementen som slogs bort. Living är lätt med slutna ögon, missförstå allt du ser Strawberry Fields Forever, John Lennon. Ladder Logic 402 Data Manipulation och filtrering. I senaste veckans inlägg diskuterade jag att skaffa data med hjälp av en PLC för att fånga värden från ett analogt kort jag visade några ganska enkla metoder Av att fånga data med hjälp av FIFO-metoder, medelvärdesdata och hur några av stegenlogiken kan utföras på olika PLC-plattformar. Det här inlägget diskuterar några metoder för filtrering av data och sätt att simulera ett filter med Microsoft Excel innan du ens kodar det I PLC. First Jag gjorde en del söka på nätet för att se vilken typ av filtreringsalgoritmer folk använder redan på en PLC Jag hittade en mängd olika inlägg på olika forum inklusive och det fanns också svar och rekommendationer om länkade i forum och till och med en ny En som postades här i de senaste veckorna kommentarer. Första formlerna har jag använt samma variabla namn för alla formler trots att de skilde sig mycket i de olika inläggen han Re använder jag följande. N Nytt värde beräknat och ersatt för ingångsvärdet Med andra ord, det beräknade filtrerade värdet L Det tidigare infångade ingångsvärdet F Det tidigare beräknade filtrerade värdet k Den manipulerade faktorn för alla beräkningar som ibland kallas Alpha i Den nuvarande Analogt ingångsvärde Avg Ett löpande medelvärde över x antal tidigare prover, jag använde 3 för x i detta exempel. Formeln för ett första orderfilter är Nyfiltrerad Senast filtrerad faktorinmatning Senast filtrerad Detta motsvarar NF k iF enligt variablerna I Listade ovan Den faktiska formeln använder Alpha istället för k Resultat från denna formel anges som Formel 6 nedan i min simulering. För att simulera en signal listade jag några analoga värden i en kolumn på ett Excel-kalkylblad Dessa värden är typiska för en 13-bitars signerad analog Signal från ett PLC-kort märker att de ökar eller minskar med en faktor på åtta Detta skulle innebära att på en 0-10v eller 0-20mA signal med ett intervall på 0-32.767 skulle det finnas 4096 möjliga E-värden för signalen Den andra halvan av intervallet -32768 till -1, kan inte erhållas från fältanordningen. Den första kolumnen som visas ovan är de ingångsvärden som jag angav Värdet 20168 simulerar en stor ljudspets som du kanske vill ha Att filtrera till, liknande det som beskrivs av Quy Phan i sin fråga Följande kolumner visar resultat efter att ha använt de olika filtreringsformlerna jag hittade under min sökning Anledningen till att inmatningskolonnen har tidigare värden i det är så att jag kunde använda ett löpande medelvärde upp Till fem värden i min formler Formel 6 den som jag brukar använda måste också använda det tidigare filtrerade värdet så det är därför det har ett extra värde i det också. Detta är en nyckel med variablerna jag listade och formlerna K-värdena Är kopplade till celler som används i tabellen, så jag kan ändra dem efter behov. Det här är de tre första formelens resultat. Och det här är de kommande tre. Som du kan se ser Formel 1 ut som det gör signalen värre Den här var listade på Jag försökte röra med parentes a Nd k-värdet men det tycktes inte hjälpa till I beskrivningen skrev författaren att k var antalet prover för att filtrera över, men något positivt heltal var en katastrof, så jag gav upp. Formula 2 och Formel 4 gjorde nästan samma Saker i instruktionerna Formel 2 var k 1 0, ingen filtrering, k 0, utgången fryser Formula 4 s instruktioner sagt k 1 0, ingen filtrering, 2 0, 4 0 och 8 0 ger ökande mängder filtrering med mer dämpning, men mer Fördröjning. Formula 3 är ett rakt löpande medelvärde och verkar faktiskt fungera ganska bra Jag använde nuvarande och föregående två värden för i genomsnitt tre, när man använde mer fanns det mer lag. Formel 5 använder också ett löpande medelvärde Jag använde tre prov i medeltalet också men jag tror att avsikt var att använda fyra eller fem när jag gjorde det försenade reaktionslagret blev sämre. Som jag nämnde är den formella definitionen av ett första orderfilter det jag tidigare använt detta. Detta är representerat med formel 6 Ibland är detta känt som ett första derivatfilter om punkten S likställs med positionen skulle detta representera ett hastighetsbaserat filter Ett andra orderfilter skulle då representera Accel Decel och ett tredje orderfilter skulle representera jerk. Filtret skulle fungera utanför deltaet mellan nuvarande och tidigare värden jag vet inte mycket Om processkontroll, så jag är inte säker på hur det andra och det tredje derivatet kan relatera till flöde eller temperatur. I förra veckans sändning beskrev Karl Newman ett enkelt glidande medelfilter med ett formulärförslag som jag ville få det här inlägget färdigt innan jag gick ut Till Los Angeles i veckan, så jag fick inte chansen att prova det. Han säger att det inte har några krav på datalagring, men självklart att beräkna nya eller få gamla medelvärden måste du behålla tidigare medelvärden jag tänker prova på på mitt kalkylblad, men förhoppningsvis kommer Karl att låta mig veta vad han menade med ingen datalagring. Huvuddelen som jag hoppas kunna komma över med med det här inlägget är att du kan simulera formler mycket enkelt i Excel, du kanske vill kolla saker Innan du kodar den i PLC som illustreras av Formel 1. Om du använder en formel i PLC-formuläret, varierar det mycket mellan plattformar. I ladderlogik kan ett beräkningstypkommando du skriva in formuläret direkt, men du kan fortfarande behöva använda FIFO-filer enligt beskrivningen förra veckan, speciellt när medelstora strukturerad text också är ett bra alternativ om din plattform har det Siemens STL Statement List gör det också lättare. Gain, Quy Phans uppgift kommer att bli lite hårdare och ta mer tid med sin Automation Direct DL205 där Är mycket LOAD och OUT nödvändig när man använder stackbaserad logik och matematik. Han kommer också att behöva bestämma en riktig tidskonstant för datainsamling. Jag kan ta itu med vad som krävs för att ändra dessa formler i stege vid ett senare tillfälle. Eftersom detta är en av Mina första avancerade ämnen, de flesta av er med erfarenhet vet redan hur man gör det, men för dem som bara lär sig kan det vara en bra övning. Hej från Sunny Los Angeles, 14 mars 2016 Jag uppdaterar det här inlägget med lite stege som jag nämnde i helgen. Det här använder Formel 6 från kalkylbladet. Det är enkelt att använda programmet om du har en instruktion som låter dig ange en full formel. Och här är det lite svårare sättet, gör varje matematisk instruktion sekventiellt och sparar värden i mellanliggande värden för scratchpad. Fortfarande inte så illa. Ännu en gång svarar detta på Quy s ursprungliga problem med filtrering på en Automation Direct DL205. Några saker att lägga till den här koden på den plattformen.1 Adresserna är inte taggar, de är 16 bitars oktaltalerade register, som V7020-V7027 Eftersom de flesta matte i mitt filterexempel använder REAL eller Floating Point-nummer måste det analoga värdet vara Konverteras från helhetsform till REAL, med hjälp av olika mellanregister. REALs fyller naturligtvis två 16-bitars adresser vardera, så var försiktig med att reservera mellanslag.2 Matematik och flyttfunktioner vunnit t ser ut så här, de kommer att kräva LOAD Dubbel Vxxx och OUT Dubbel VXXX-kommandon Instruktionerna kan inte placeras i serier, utan måste i stället vara parallella eller använda separata spår. Timer körs på en 100ms tidsbas, så det blir svårt att prova repetitivt och noggrant. Se Förra veckan s post för varför det här kan vara ett problem. Även samla data för att analysera för ditt kalkylblad kommer att vara svårare kodning. Ideellt skulle du prova på 10-20ms för att analysera din signal, men filtrera i en långsammare takt, säg 100-200ms. Det är roligt att jag sätter det här på några länkade i forum ett par dagar sedan och har fått några intressanta svar, som MS Excel är inte kompatibel med Ladder Logic Hmmm, inte säker på att posten lästs korrekt, det antar jag sätter in det 400-serien Beklagar att Excel bara används som analysverktyg här. Men bara för skojs skull, kolla in det här inlägget från flera år sedan. Du kan faktiskt skriva importerbar kod i Excel. I AB kan XML-filer importeras och enkelt konverteras från en L5X-fil till ladan Der, medan det i Siemens kan importeras som STL Statement List och konverteras till stege Jag slår vad om att du kan göra det på några andra plattformar också. Jag har också några fler formulärförslag att prova. Håll dem som kommer, som jag nämnde, är jag arbetar på en avancerad PLC programmeringsbok och uppskattar inmatningen.

No comments:

Post a Comment