Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

siemens icon Productstyle icon link Uiteenzetting van de workflow van het PLC-programma

Om de meegeleverde code te gebruiken, kopieert u de Octalarm-mappen uit zowel de Program Blocks- als de PLC Data Types-secties.

Schermafbeelding Octalarm-mappen in PLC-programmeertool

Roep de functie FC_OctalarmMain aan vanuit het main block van uw PLC. Deze functie beheert alle taken met betrekking tot de communicatie met het Octalarm-systeem.

Tijdens de eerste scan-cyclus van de PLC leest het systeem het configuratiebestand dat op de geheugenkaart staat. De FileReadC-instructie voert deze actie uit en blijft actief totdat het proces succesvol is afgerond. Daarna is de configuratiedata geladen in een PLC-datablok en hoeft u de instructie niet meer aan te roepen.

Schermafbeelding DB_Filehandling

De byte-array ReadData fungeert als bestemming voor de configuratiedata die door de FileReadC-instructie gelezen wordt. U kunt de lengte van de array aanpassen aan de grootte van het configuratiebestand. Als u de arraygroottes wijzigt, stelt u ook de beginwaarde van ConfigLength overeenkomstig in om de gegevens correct te verwerken.

Schermafbeelding FileReadC-instructie

ReadData bevat de ASCII-codes van elk karakter. Gebruik de BYTE_TO_CHAR-instructie om deze codes om te zetten naar karakters en op te slaan in hetzelfde datablock, specifiek in de array ReadDataInChar.

Het configuratiebestand wijzigen

Als de webserver op de PLC is ingeschakeld en de gebruiker de juiste rechten voor Filebrowser access ontvangt, kunt u het configuratiebestand via een webbrowser benaderen. U kunt het bestand downloaden, aanpassen en opnieuw uploaden indien nodig. Deze functie is handig voor het bijwerken van configuratiegegevens, zoals het toevoegen van een nieuwe locatie, categorie of alarm, of het wijzigen van bestaande parameters.

Schermafbeelding gebruikersrechten op bestanden via webserver

Wanneer u het configuratiebestand wijzigt, zet u de variabele ConfigFileIsChanged in DB_Filehandling op true. Hierdoor leest de PLC de configuratie opnieuw van de geheugenkaart en worden de betreffende datablocks bijgewerkt.

Functieblokken met bijbehorende voorwaarden

Na het inlezen van de configuratiegegevens roept de PLC twee functieblokken aan met bijbehorende voorwaarden:

  • FB_Config_Watch stuurt configuratiegegevens naar de melder en verstuurt vervolgens watchdog-aanvragen om de communicatie te bewaken.
  • FB_SendAlarms beheert de rapportage van de alarmstatus naar de melder.

Beide functieblokken zijn geïmplementeerd in SCL.

Schermafbeelding call of two FBs with corresponding conditions

FB_Config_Watch

FB_Config_Watch gebruikt een instantie van LHTTP_POSTPUT_L. Deze instantie configureert eerst de melder en stuurt vervolgens periodiek watchdog-aanvragen.

In de initiate-toestand bereidt de functie de te verzenden gegevens voor via HTTP POST door ze van de geheugenkaart te lezen. Na het versturen van de configuratiegegevens bereidt hij watchdog-gegevens voor en verstuurt deze op regelmatige intervallen naar de melder.

Het onderstaande stroomdiagram schetst de vereenvoudigde werking van het functieblok FB_Config_Watch. Het toont ook de mogelijke waarden voor de variabele StateMachine.

Schermafbeelding FB_Config_Watch flowchart

Standaard is het maximale interval tussen twee watchdog-aanvragen 60 seconden. Het systeem probeert elke 30 seconden een aanvraag te sturen. Pas IDB_Config_Watch aan om deze parameters te wijzigen. Om de body van de watchdog API-aanvraag aan te passen, voert u de gewenste tekenreeks in bij sNextKick en zet u StateMachine op 20 (cInitWatchDogData) om de wijziging toe te passen. U kunt het aanroepinterval voor de watchtime-API instellen door sPT te wijzigen. Dit bepaalt hoe vaak de PLC de API-aanroep uitvoert.

Schermafbeelding IDB_Config_Watch

FB_SendAlarms

Schermafbeelding DB_Alarms

Het datablock bevat een array met alarmen:

  • Alarm[0] is gereserveerd om een communicatiestoring aan te geven;
  • Alarms[1] tot en met Alarms[Count] (in ons voorbeeld Alarms[12]) zijn de alarmen die in het configuratiebestand staan.

Om het nde alarm uit het configuratiebestand door te geven, zet u DB_Alarms.Alarms[n] op true of false. Het array-index geeft de volgorde aan waarin de alarmen in het configuratiebestand staan.

In UDT_Alarm geeft het veld status de huidige status van het alarm weer, die de PLC-programmeur moet bijwerken. Het veld Status_Mem bevat de laatst verzonden status naar de melder. Als de huidige status is gewijzigd en verschilt van Status_Mem, past de PLC het Octalarm-systeem dienovereenkomstig aan. Zodra aan deze voorwaarde is voldaan, verstuurt de PLC de bijgewerkte status met een POST-aanvraag naar de melder.