Dirks -Tips


[Beveiliging]   [Source Files]   [StringDB]   [Symbolenlijst]   [Nauwkeurige secondepuls]   [Tools]

Beveiliging van S7-bouwstenen

Genereren van een sourcefileMen kan een bouwsteen in S7 beveiligen door van de bouwsteen een source-file te maken.
Dit kan door in de LAD/STL/FBD-editor via het menu [File] [Generate Source] te kiezen.
Geef een naam voor de source-file (deze komt in de sources-container van uw project).

Kies vervolgens de bouwsteen die u wil beveiligen (zie nevenstaande figuur).
Klik op het pijltje om deze in de 'selected'-area te zetten.
Men moet aangeven of men de bouwsteen absoluut of symbolisch wil genereren. Absoluut zal meestal het beste zijn, anders moet de symbolenlijst overeenkomen bij het hergenereren van de bouwsteen.

In de gegenereerde source-file zet men vervolgens de compiler-directive KNOW_HOW_PROTECT.
Men opent daartoe de source-file via de Step7-manager door erop te dubbelklikken (zie sources-container van uw project).
De header van de source-file kan er bijvoorbeeld als volgt uit zien (de directive komt op de aangegeven plaats):

  FUNCTION FC 0 : VOID
  TITLE =GENERAL
  //Commentaar
  AUTHOR : DIRK_V
  FAMILY : GENERAL
  VERSION : 1.0
  KNOW_HOW_PROTECT   ==> Bijgevoegd
                         (Case-sensitive! MOET op deze plaats!)

  BEGIN
  NETWORK
  etc.

Bij het compileren wordt er voor gezorgd dat de bouwsteen beveiligd wordt.
Compileer de bouwsteen door via het menu [File] [Compile] te kiezen.
Let op: de originele bouwsteen wordt zonder melding overschreven!

Belangrijke opmerking:
Ten einde de bouwsteen nog te kunnen aanpassen moet u voor uzelf hetzij de originele bouwsteen, hetzij de source-file bewaren!!!
De beveiligde bouwsteen is namelijk niet meer te bekijken, laat staan te editeren.

Source-files

Bij het vorige hoofdstukje zagen we reeds een nuttige toepassing van source-files.
Er zijn echter meerdere interessante mogelijkheden te bedenken:
  • Importeren en exporteren van bouwstenen in ASCII-formaat. Zo kan u bijvoorbeeld een individuele bouwsteen via mail doorsturen naar een collega en hoeft u dus geen nep-project in S7 te maken om een enkele bouwsteen over te dragen.
  • Het automatiseren van repetitief werk. Behalve functionaliteit programmeren, bestaat een groot deel van PLC-programmatie uit het parametreren van functies. Dit is in feite een apewerk, dat de PLC-programmatie onaangenaam maakt. Vermits het mogelijk is een ASCII-file aan te maken en deze vervolgens te compileren, heb ik het idee ontwikkeld om dit apewerk te automatiseren. Om het leven aangenamer te maken, schreef ik in C++ een tooltje waarmee alle typicals (functies voor de sturing van de diverse field-elementen zoals kleppen en pompen) automatisch geparametreerd kunnen worden. Men maakt enkel een tabel met de parameters (wat zeer overzichtelijk is!) en gebruikt het tooltje om de bouwsteen te genereren waarin de aanroep van de verschillende typicals gebeurt. Volgende afbeelding schetst hoe dit in zijn werk gaat.
S7 source generator in actie

Wat eerst meerdere dagen repetitief werk kostte, wordt nu gereduceerd tot een minimum aan handelingen en een paar minuten werk.
Meer informatie over zo'n tool vindt u ook in mijn pagina Step7-tool (zie menu {Automatisering} {S7Tool (voor Step7)}).

StringDB

Scherm StringDB Dit tooltje illustreert het gebruik van source-files, en kan u hier gratis downloaden.

De bedoeling is op een makkelijke manier een datablok aan te maken, waarin vaste tekst wordt opgeslagen, die via een communicatieprocessor dient te worden verzonden (bijvoorbeeld serieel naar een printer of via ethernet naar een database-systeem).

Vul in het ingaveveld bovenaan een datablok-nummer in. In het tekstveld kan men data plakken uit het klembord door hier met de rechtermuistoets in te klikken, ofwel typt men de data rechtstreeks in het tekstveld in.
Klik vervolgens op de knop [genereer]. De sourcefile wordt gegenereerd en naar het klembord gekopieerd (u krijgt hiervan een melding).

Maak nu in de Step7-manager een sourcefile aan (kies "insert STL-source" in de Sources-container van uw project). Open deze sourcefile en plak hierin de data die door het tooltje op het klembord gekopieerd werd. Kies via het menu File-Compile (CTRL-B) en klaar is Kees. U heeft nu een datablok zoals in volgende figuur getoond wordt:

Datablok Step7

Symbolenlijst

Deze tip is alleen van belang voor oudere versies van Step7. In versie 5.3 bijvoorbeeld, kan men voor de symbolenlijst het klembord volwaardig gebruiken.

Symbolenlijst in Excel Soms kan het interessant zijn om symbolenlijsten uit te wisselen met andere pakketten.
Het duidelijkste voorbeeld is het aanmaken van taglijsten waarbij de tags een volgnummer hebben. Die kan men nagenoeg automatisch aanmaken in Excel, terwijl in de Step7 symbolen-editor alles manueel ingetokkeld moet worden.

Een symbolenlijst geheel of gedeeltelijk kopiëren (bijvoorbeeld naar een spreadsheet) kan eenvoudig met Copy-Paste. Selekteer in de symbolen-editor de gewenste data en kopieer deze naar het klembord. Plak vervolgens de data in de gewenste applicatie.

De omgekeerde weg is iets moeilijker. Het is namelijk niet mogelijk rechtstreeks data vanuit een ander pakket in de symbolen-editor te kopiëren.
Het kan wel via de import-functie, op voorwaarde dat enkel regels gerespecteerd worden. Maak een symbolenlijst in Excel, gebruikmakend van 4 kolommen, zoals hiernaast is afgebeeld. De inhoud van de kolommen is dus van belang, m.a.w. de eerste kolom bevat de symbolen, de tweede de adressen, enzovoort. Maak gebruik van de handigheden uit Excel, zoals het automatisch opvullen met het kruisje (rood omcirkeld in de figuur). Bewaar vervolgens uw rekenblad als een DIF-bestand (Data Interchange Format). Indien uw spreadsheet meerdere sheets bevat, krijgt u de melding dat slechts 1 sheet in DIF kan bewaard worden! Bekijk eventueel dit voorbeeldbestand.
Open uw symbolenlijst in de Step7 symbolen-editor en ga naar de laatste regel. Kies vervolgens de menu-optie [Symbol Table] [Import] en open het DIF-bestand. Klaar...

Nauwkeurige secondepuls

Meestal wordt een secondepuls (een merker die elke seconde gedurende 1 PLC-cyclus actief is) aangemaakt met een timer, zoals hiernaast is afgebeeld.
Deze secondepuls is echter onnauwkeurig, omdat de seconde telkens pas herstart na een PLC-cyclus. De merker is dus laag gedurende een seconde, vervolgens tijdens een volledige PLC-cyclus hoog, opnieuw een seconde laag, enzovoort.
Als men een PLC-cyclus van bijvoorbeeld 100ms heeft, dan is het tijdschema:
  • 1 seconde laag
  • 100 ms hoog
  • 1 seconde laag
  • enzovoort
Een klassieke secondepuls

We gaan er hier trouwens van uit dat de timer nauwkeurig is, de gegenereerde puls is dat in elk geval niet...

Voor bijvoorbeeld vertragingstijden van alarmen, is de nauwkeurigheid van de puls meestal geen punt. Wanneer men echter bijvoorbeeld sterilisatie-tijden wil bewaken met de PLC, kan het karakter van de secondepuls wel van belang zijn.

Het is mogelijk een nauwkeurige secondepuls te genereren door gebruik te maken van een interrupt-bouwsteen (bv. OB32, welke iedere seconde wordt doorlopen). Hierin gaan we een hulpbit setten, welke we gebruiken om bij aanvang van OB1 de secondepuls hoog te maken. Op het einde van OB1 worden de secondepuls en de hulpbit gereset indien de secondepuls actief was. In feite wordt dus bij de eerstvolgende OB1-start kenbaar gemaakt dat tijdens de vorige cyclus een interrupt plaatsvond. In volgende afbeeldingen wordt een en ander duidelijk gemaakt:

OB32
Tijd-getriggerde bouwsteen OB32.

Aanvang OB1
Bij aanvang OB1 (bv. in netwerk 1).

Einde OB1
Bij einde OB1 (bv. in laatste netwerk).

Tools

HIER kan u een S7-projectje downloaden met verschillende tools, welke u wel eens kan nodig hebben bij een project, zoals:
  • Ringteller
  • Voortschrijdend gemiddelde
  • Enzovoort...
U kan het project openen in Step7 via het menu [File] [Retrieve].
Test de bouwstenen goed om te kijken of ze voor uw project bruikbaar zijn. Gebruik is uiteraard op eigen risico!
© Dirk Verlinden (2009-2018) - dirk.verlinden@telenet.be - Voorwaarden/Disclaimer - Sitemap