TIAN Industrial Automation
EN
All articles

Muting-baklåset som låste in en vagn i sitt eget skyddsfält

En ljusridå från SICK gjorde precis det den var byggd för — och fångade in den vagn den specifikt var till för att släppa igenom. Här är fällan, lösningen jag testade, och hålet lösningen öppnade.

En ljusridå har exakt ett jobb: stoppa maskinen när en människa befinner sig någonstans hen inte borde vara. På en muting-uppsättning jag jobbade på gjorde den det jobbet felfritt. Och i och med det fångade den in den vagn den specifikt var byggd för att släppa igenom.

Det här är den långa versionen av något jag skrev om tidigare, för den korta versionen lämnar inte plats för den del som faktiskt betyder något — varför det hände, och varför den uppenbara lösningen visade sig vara värre än problemet. Om du kör muting någonstans är det här en fälla värd att förstå innan du stöter på den på en maskin i drift snarare än efteråt.

En transportvagn som står stilla mellan sändar- och mottagarkolumnerna på en ljusridå från SICK i en mörklagd industrihall, den skyddade zonen upplyst av en enda varm taklampa

Vad vi skyddade

En transportvagn körde fram och tillbaka genom en skyddad zon. Skyddet var en ljusridå SICK deTec4 med en muting-styrenhet av typen DMM4 som matade säkerhetssignalen in i en Siemens-PLC.

Problemet med att sätta en ljusridå framför en vagn i rörelse är uppenbart: vagnen bryter strålarna varje gång den passerar. Om ridån behandlade vagnen som en människa skulle maskinen lösa ut vid varje cykel och ingenting skulle någonsin röra sig. Så du behöver att ridån släpper igenom vagnen utan att släppa sitt skydd mot människor.

Det är vad muting är till för.

Varför muting överhuvudtaget finns

Muting är det avsiktliga, automatiska, tillfälliga upphävandet av en säkerhetsfunktion så att ett förväntat objekt kan passera genom en skyddsanordning utan att stoppa maskinen — samtidigt som en människa fortfarande inte kan det. Det är ingen genväg eller fusk. Det är en definierad funktion med egna standarder bakom sig: själva ljusridån faller under IEC 61496 (beröringsfritt verkande skyddsutrustning), och tillämpningen av muting specifikt täcks av IEC 62046 (tillämpning av skyddsutrustning för att detektera närvaro av personer). Den prestandanivå hela säkerhetsfunktionen måste nå upp till finns i ISO 13849.

Knepet med muting är att skilja en vagn från en människa. Det gör du med muting-sensorer — separata sensorer, arrangerade så att bara det förväntade objektet, som anländer på det förväntade sättet, kan uppfylla dem. Få rätt mönster i rätt ordning och styrenheten säger det där är vagnen, och mutar. En människa som kommer gående kan inte återskapa det mönstret, så ridån förblir aktiv för henne.

I den här uppsättningen var det partiellt muting: de nedre strålarna mutades så att vagnen kunde rulla igenom undertill, medan de övre strålarna förblev aktiva hela tiden för att skydda den som stod i zonen. Själva mutingen utlöstes av två fotosensorer på en fana — ett L-muting-arrangemang — som löste ut när vagnen kom in.

Det funkade utmärkt i evigheter. Sedan gjorde det inte det.

Baklåset

Någon bröt de övre aktiva strålarna medan vagnen fortfarande stod kvar i fältet.

Det är inget fel — det är ridån som fungerar. De övre strålarna sitter där för exakt det här. OSSD-utgångarna (säkerhetsutgångarna som talar om för drivenheterna att ”ni får röra er”) löste ut. Helt korrekt beteende.

Här är var det knyter ihop sig:

  • DMM4 släpper mutingen i samma ögonblick den löser ut. I sig helt okej.
  • Men vagnen står fortfarande där, fortfarande blockerande de nedre strålarna.
  • Så med mutingen borta ser ridån nu också vagnen som ett hinder. Hela fältet läses som blockerat. Helt rött.
  • Den accepterar ingen reset, för en reset vill se hela fältet fritt först — ridån måste visa blinkande gult innan den accepterar en kvittering.

Följ nu loopen. Vagnen kan inte röra sig, för drivenheterna behöver ett säkerhets-OK för att gå. Säkerheten kan inte kvitteras, för ridån är inte fri. Och ridån kan inte bli fri, för vagnen står parkerad mitt i den och kan inte röra sig.

Ett riktigt baklås. Vagnen fysiskt fast mellan sändaren och mottagaren, och ingen knapp på panelen som får ut den.

Flank, inte nivå

Det här tog ett tag för mig att faktiskt förstå, snarare än att bara råbruta mig förbi det.

L-mutingen på DMM4 är flankutlöst, inte nivåutlöst. Den distinktionen är hela poängen, så det är värt att vara exakt med den:

  • Nivåutlöst logik agerar på ett tillstånd. Så länge insignalen är hög håller villkoret. Den bryr sig om var signalen är.
  • Flankutlöst logik agerar på en övergång. Den utlöser på förändringen — en stigande flank (0 → 1) eller en fallande flank (1 → 0). Den bryr sig om ögonblicket då signalen rör sig.

DMM4 aktiverar muting på en stigande flank från muting-sensorerna — ögonblicket då de går från ”ingen vagn” till ”vagn på ingång”. Det är normalt precis vad du vill ha: det bevisar en färsk, sekvenserad ankomst snarare än något som bara står still i strålen.

Men gå igenom vår situation med det i bakhuvudet. OSSD löser ut. Vagnen lämnar aldrig. Så muting-sensorerna ligger redan höga — de gick höga när vagnen kom in och de har legat höga hela tiden. För att mutingen ska aktiveras igen behöver DMM4 se en stigande flank. Och det finns ingen stigande flank att få, för signalen ligger redan i topp. Den kan inte stiga från en nivå den redan ligger på. Ingen flank, ingen muting, ingen väg ut.

Jag bevisade det på det grova sättet: drog ut vagnen ur fältet för hand, och körde sedan in den igen. Färsk ankomst, färsk stigande flank på muting-sensorerna — och mutingen kom tillbaka direkt. Det bekräftade saken. Systemet var inte trasigt. Det gjorde exakt vad flankutlöst logik gör. Det hade bara ingen väg tillbaka till ett mutat tillstånd utan en övergång som baklåset självt gjorde omöjlig.

Enknappslösningen — och hålet den öppnade

Den uppenbara lösningen såg ren ut. I SICK Safety Designer, växla den befintliga reset-ingången till en reset/override-ingång — en enda knapp, och DMM4 avgör vilken av dem det är utifrån det aktuella tillståndet. Override:a det fastlåsta läget, få vagnen i rörelse, klart. Snyggt på pappret.

Sedan tittade jag på vad override faktiskt gör, och slutade snabbt tycka om det.

En override håller OSSD grön så länge muting-sensorn förblir blockerad. Den släpper bara override:n när sensorn går 1 → 0 — en fallande flank, vagnen som äntligen lämnar. Vilket är okej om det enda som någonsin blockerar den sensorn är en verklig vagn på väg ut.

Men det är inget som tvingar fram det. Håll vad som helst framför muting-sensorn så håller override:n OSSD grön i princip för evigt. Hela ridån — inklusive de övre strålarna, de som skyddar människor — förbikopplad, på obestämd tid, med en blockerad sensor och en knapptryckning.

Och lägg märke till symmetrin, för det är här den faktiska lärdomen ligger begravd. Det ursprungliga baklåset kom från flankutlöst logik — det behövde en övergång som inte fanns att tillgå. Override-lösningen är nivåutlöst — den förblir aktiv så länge tillståndet hålls kvar. Jag hade bytt ut en feltyp mot en annan. Den första fångar in dig och du kan se det. Den andra förbikopplar ditt skydd och du kan inte se det. Det är ett strikt sämre byte.

Varför override:n är fel lösning

Jag ringde till och med SICK för att prata igenom det, och jag hittade aldrig ett svar jag gillade — inget som täppte till hålet utan att återinföra någon version av det ursprungliga problemet.

Det är därför enknapps-override:n är fel byte. Ett synligt stopp som kräver att någon fysiskt frigör fältet är irriterande. En tyst, hållbar förbikoppling av ett människoskyddande skydd är en helt annan kategori av sak — inte något värt att designa in för att spara några sekunders återställningstid.

Vad det lärde mig om muting-design

Jag ska vara ärlig: jag hittade aldrig en lösning jag verkligen gillade, och jag tror fortfarande att det finns ett renare svar där ute som jag inte nådde fram till. Ställd inför valet tar jag varje gång ett synligt, återställbart stopp framför en förbikoppling man kan hålla öppen.

Men jag kom ut ur det med en förståelse för muting som inget datablad hade lärt mig. Muting är ett avsiktligt hål i din säkerhetsfunktion. Det är ingen kritik — det är hela poängen med det, och det är en legitim, standardiserad sak att göra. Disciplinen ligger i att hålla det hålet stramt avgränsat: avgränsat av sensorlogik, av sekvens, av geometri, av tid, så att det inte kan luras öppet och inte kan hållas öppet. Varje ”bekvämlighet” du skruvar fast för att ta dig ur ett knepigt specialfall är en kandidat till att vidga det hålet, och override:n var ett perfekt exempel — den löste en verklig irritation genom att tyst ta bort gränsen.

Och det jag skulle säga till vem som helst som sätter upp muting för första gången: flank kontra nivå är ingen fotnot. Det är det faktiska beteendet hos din säkerhetsfunktion under de förhållanden du inte planerade för. Flankutlöst logik kan strandsätta dig när övergången du väntar på inte kan inträffa. Nivåutlöst logik kan hålla ett farligt tillstånd öppet så länge något håller det högt. Båda är korrekta. Båda kommer att bita dig. Att veta vilken av dem du byggt, och exakt vad som händer med den när maskinen hamnar någonstans du inte föreställt dig, är största delen av jobbet.

Vagnen kom ut. Jag landade aldrig den eleganta lösning jag var ute efter — men jag litar mycket mer på muting nu, just för att jag vet exakt var dess kanter går.

Subscribe