Kontakt und Spule fast in der Steuerung Versuchen Sie dies auf für Größe: We8217ve automatisiert seit Hunderten von Jahren jetzt. Die industrielle Revolution verursachte eine Migration von Arbeitnehmern aus der Landwirtschaft in die Städte, um an Fabrikarbeiten zu arbeiten, und Arbeiter, die durch neue Technologien vertrieben werden, finden neue Arbeit, die es vor einigen Jahren noch nicht gab. Ich nehme an, wenn Sie diesen Artikel lesen, dass you8217re in der Automatisierung in irgendeiner Weise beteiligt ist, also you8217d eigentlich wollen, um diese Aussage zu glauben, und argumentieren, was jemand glauben wollte, wäre sinnlos. I8217m geht es trotzdem. Diese Aussage ist falsch. Diesmal ist es wirklich anders. Um dies zu erklären, brauche ich Sie zu prüfen, was motiviert die Menschen hier in der 8220west8221. Grundsätzlich haben wir eine Form des regulierten Kapitalismus. Um das zu kochen, bedeutet das, dass du Sachen besitzen kannst, und du darfst einen Bruchteil der Erlöse behalten, die aus diesen Dingen erzeugt werden. Das gilt für fast alle von uns, auch wenn die meisten Leute es nicht so denken. Es ist für einen Landwirt offensichtlich: Sie besitzen Land, Gebäude und Ausrüstung, Sie wachsen Sachen und verkaufen sie, und nach der Steuer hoffen Sie, mit irgendeiner Art von Gewinn zu enden. Okay, vielleicht landwirtschaftlich ist ein schönes Beispiel, denn es gibt so viele staatliche Subventionen, aber das Prinzip ist das gleiche bei kleinen Unternehmern und sogar Angestellten. Mitarbeiter Die meisten Angestellten sehen sich nicht als Kapitalisten an, weil sie die Hauptstadt sehen können, um einen Gewinn zu erzielen, aber es ist genau dort im Spiegel. Du bist dein eigenes Kapital. Seit der Abschaffung ist das Kapital, das niemand von dir nehmen könnte. Es ist das erste und primäre Sozialversicherungsnetz. Egal wie mittellos du warst, Krankheit oder Gebrechlichkeit zu sperren, du hattest dieses grundlegende Nest-Ei des Kapitals, das du immer ausziehen kannst, um dein Leben zu booten. Die meisten Leute fehlen das Kapital für Geld, und das, warum sie sich als Kapital sehen. Immerhin kannst du dich selber fühlen, kannst du Hunderte von Jahren zurückkehren. Die meisten Sklaven um das Mittelmeer vor Hunderten von Jahren waren Sklaven, weil sie Schulden entstanden, dass sie sich nicht auszahlen konnten, so dass sie das Eigentum von jedem wurden, dem sie die Schulden schuldeten, bis sie ihre Schulden ausarbeiten konnten. Wenn es hilft, denke an den menschlichen Körper als eine Maschine, die Nahrung verwandelt in verschiedene nützliche Dinge wertvoller als Nahrung. Landwirte machen kleine Mengen an Nahrung in größere Mengen an Nahrung. Schreiner verwandeln Lebensmittel und Holz in Häuser oder Möbel. Quantenphysiker machen Nahrung zu Transistoren und Lasern, und du, lieber Leser, vielleicht bist du eine Maschine, die Essen in SPS-Programme verwandelt. Im Gegenzug handeln wir diese Dinge für verschiedene nützliche Dinge, die andere Menschen geschaffen haben. Kapitalismus. Jetzt bin ich ein Fan des regulierten Kapitalismus, weil es eine effiziente Möglichkeit ist, viele Maschinen (uns) zu organisieren, um viele wertvolle Dinge wie Autos, Häuser und Episoden von Game of Thrones zu produzieren. Jetzt ist hier der seltsame Teil. Es gibt einen riesigen Anreiz, dein Kapital zu nutzen, um mehr Kapital zu erwerben, das du dann benutzen kannst, um mehr Kapital zu erwerben, und so weiter, aber nur sehr wenige Leute tun das. Sie würden denken, dass jemand, der im Alter von 18 Jahren 13 Jahre Schulbildung absolvierte, 47 Jahre alt war und im Alter von 65 Jahren in den Ruhestand ging und einen durchschnittlichen bescheidenen Lohn von 30.000 pro Jahr in den heutigen Dollars hatte Foresight, um etwas von diesen 1,4 Millionen für ihren Ruhestand zu sparen, aber es8217s klar, dass viele don8217t. In der Tat gibt es viele Menschen mit einem Einkommen weit höher als das, die nicht nur don8217t speichern, aber gehen in erhebliche Schulden und entweder erklären Konkurs oder virtuelle Sklaven zu Kreditkarten-Unternehmen geworden. Es ist so unglaublich häufig und hat so einen negativen Kosten für die Gesellschaft, dass Regierungen die Arbeiter tatsächlich dazu zwingen, Teile ihrer Gehaltsscheck jede Woche in ein staatliches Pensionsprogramm zu retten und dann ein Stipendium zu zahlen, wenn sie sich zurückziehen. I8217m nicht vertraut mit der Art, wie dies in den Vereinigten Staaten funktioniert, aber in Kanada wird dies als die Kanada Pension Plan bezeichnet, und it8217s ergänzt durch etwas namens Old Age Security, die in ein paar Jahre später tritt. Dies ist trotz der Tatsache, dass jeder, der sich bemühte, 18 ihrer Netto-Gehaltsscheck für ihre gesamte Karriere in einen steuerlich geschützten Altersvorsorgeplan zu verschenken und ihn in Investmentfonds zu investieren, hätte einen sehr komfortablen Ruhestand, der viel bequemer war als auf einer staatlichen Rente zu leben . Jetzt gehört mir ein Teil von mir, das ist gut, du hast dein Bett gemacht, jetzt liegt darin. Aber das betrifft alle, auch die reichsten Kapitalisten. Die grundlegendsten staatlichen Dienstleistungen sind diejenigen, die wohlhabende Menschen am meisten brauchen: Militär, Polizei (Strafrecht) und die Vollstreckung von Verträgen (Zivilrecht). Diese drei Dienste der Regierung geben den Menschen die Fähigkeit, Dinge zu besitzen. Das Militär schützt es vor äußeren Bedrohungen, die Polizei schützt es vor Menschen im Land (Diebe und Vandalen), und das Zivilrecht beseitigt Streitigkeiten darüber, wer was besitzt. Wir hören, dass Reichtum Ungleichheit eine schlechte Sache ist, aber das kann absolut wahr sein. Wenn unser System arbeitet, muss es die Menschen, die mehr wertvolle Dinge mit mehr Geld zu belohnen, so dass die einzige Möglichkeit, es könnte Einkommen Gleichheit ist, wenn jeder etwas gleichwertig war, und wir nicht. Es sollte ein Weg für mich sein, mehr Geld zu machen, indem du härter, intelligenter oder anders arbeite als ich jetzt bin. Das ist der Anreiz, produktiver zu sein. In der Tat ist das, was wirklich zählt: Ist die durchschnittliche Person glauben, dass sie ihre Standhaftigkeit verbessern können. Wenn sie don8217t sind, werden sie widerspenstig und machen wilde und verrückte Dinge. Dinge, die wohlhabende Menschen unruhig machen, denn im Westen können diese unbändigen Menschen mit der Regierung, die all jene Militär-, Polizei - und Zivildienstleistungen, die sie abhängen, wirklich durcheinander bringen. Stellen Sie sich vor, Sie arbeiten in einer Fabrik im Midwest U. S. das macht Klimaanlagen. Die Chancen sind, du denkst an dich selbst als eine Maschine, die das Essen in Klimaanlagen verwandelt. Du denkst nicht darüber nach, wie man diese Maschine effizienter oder wertvoller macht. Du arbeitest schon 6 Tage die Woche, und deine Familie sieht dich nie. Alles, was Sie wissen, ist, dass früher oder später der Typ, der den fancy BMW fährt, Ihren Job in ein anderes Land verlegen oder Sie mit einem Roboter ersetzen wird und da alle anderen Pflanzen hier geschlossen sind, können Sie nicht in der Lage sein zu senden Dein Kind zum College. Wie würden Sie sich fühlen Vielleicht sind Sie geneigt, für einen Politiker zu stimmen, der versprach, Unternehmen zu bestrafen, die ihre Fabriken nach Mexiko verlegten. Ich denke, der Kern der Sache ist, dass dieser Arbeiter keine Ahnung, was zu tun ist. Die Anreize sind noch da: Lerne eine neue Fertigkeit, investiere in dich selbst, sei produktiver. Aber nur wenige Leute tun es, aus dem gleichen Grund, dass nur wenige Menschen für ihren eigenen Ruhestand sparen. Ich verbrachte ein paar Jahre um Leute, die kleine Geschäfte unterhielten, und ich versuchte, Aufmerksamkeit zu schenken. Ich brauchte Jahre, um wirklich zu verstehen, dass es nichts Magisches über ein Geschäft gab. Das ist, wie fast jeder andere, wurde ich mit der Idee, dass innovative Genies kommen mit brillanten neuen Ideen und starten Unternehmen, die Milliarden von Dollar machen aufgewachsen. Außerhalb einiger kleiner Fälle, das ist nicht wahr. Schauen Sie hart genug, und Sie können eine Industrie finden, die in der Nachfrage und wächst. Wenn die Nachfrage hoch ist, wird es immer Unternehmen in dieser Branche geben, die schlecht laufen, aber immer noch einen Gewinn machen. Sie können Geld verdienen, einfach indem Sie das Gleiche tun wie alle anderen und einfach nicht das Schlimmste daran. Das, wie der Kapitalismus funktioniert 8211 Es gibt Ihnen Anreize, Produkte und Dienstleistungen, die gefragt sind, zu liefern. Ich habe einen Verwandten, der vor vielen Jahren entlassen wurde. Es gab ein Arbeitsplatz-Programm, wo sie gab ihm Klassen, wie man ein kleines Unternehmen zu starten. Er lernte, Bücher zu behalten, eine Rechnung zu schreiben und wie er seine Steuern zu tun hat. Sie hakte ihn mit einem kleinen Unternehmen Darlehen. Ein paar Monate später he8217s laufen sein eigenes Geschäft und ein paar Jahre danach he8217s angestellt einen Angestellten. Jetzt hat er die Gelegenheit, in sich selbst zu investieren, wie Kauf besserer Ausrüstung und Verbesserung seiner Fähigkeiten. Let8217s sagen you8217re ein SPS-Programmierer. Ihre Firma bezahlt Sie wahrscheinlich von 50.000 pro Jahr. Wieviel haben sie auf deinem Computer ausgegeben Haben sie billig ausgegeben Ist es sinnvoll, eine 50.000-jährige Ressource mit einem billigen Laptop zu beheben. Wenn du im Geschäft für dich selbst bist, dann erkennst du schnell dort viele Dinge, die du in das investieren möchtest Sie eine effizientere oder wertvollere SPS-Programmierer, aber ein schneller Computer ist ein Kinderspiel. Automatisierung steigert die Produktivität und mit selbstfahrenden Lkw und Expertensystemen entwickelt sich die Produktivitätssteigerung. Allerdings sind dies teure Investitionen und da8217s keine Möglichkeit für Vertriebene, diese Automatisierung zu nutzen. Wenn ich einem Lkw-Fahrer einen größeren LKW gab, produzieren sie mehr Wert pro Meile angetrieben, aber wenn ich den Fahrer durch einen Computer ersetze, haben sie überhaupt keinen Wert. Erhöhte Produktivität gestoppt, höhere Löhne in den frühen 708217s zu produzieren. Ein Banklehrer macht das selbe jetzt wie damals (bereinigt um die Inflation), obwohl der Großteil der Mühe in Geldautomaten abgeladen wurde. In der Tat, Geldautomaten erlaubten Banken, mehr kleinere Zweigniederlassungen zu öffnen und die Nachfrage nach Tellers an Mitarbeiter diese Zweige hat tatsächlich die Anzahl der Teller insgesamt erhöht, aber trotz der Automatisierung der einfachen Aufgaben und steigende Nachfrage nach Kellern, sie nicht mehr in Lohn. Die gleichen Leute, die derzeit die Zuwiderhandlung und das Outsourcing für ihre Probleme beschuldigen, werden bald erkennen, dass die Automatisierung das ist, was ihr Mittagessen wirklich isst. Anders als in der industriellen Revolution, in der vertriebene Arbeiter in dieser neuen Wirtschaft durch Umstellung von der Landwirtschaft auf die Fabrikarbeit teilnehmen konnten, werden die Arbeiter während dieses Übergangs entweder ihre Arbeit verlieren und müssen völlig neu kümmern, oder im besten Fall werden sie ihre Arbeit behalten, aber nicht sehen Penny mehr für ihre erhöhte Produktivität. That8217s weil alte Automatisierung Menschen wertvoller gemacht hat, aber neue Automatisierung scheint sie weniger wertvoll zu machen. Das bedeutet, dass sie das ein bisschen Kapital abwerten. Dies ist, wo jemand in der Regel schlägt ein universelles Grundeinkommen, so dass jeder in die erhöhte Produktivität zu teilen, ohne dass alle dazu beitragen können. I8217m nicht überzeugt, dass die Zahlen addieren. Was wir wirklich brauchen, ist, diese Idee zu ermutigen, sich selbst als Kapital zu betrachten, nicht als Angestellter. Ein Anreiz und ein Sicherheitsnetz für Leute, die ein kleines Unternehmen starten, sollten weniger teuer und effektiver sein als die Bezahlung der Leute, um zu Hause zu sitzen. Wie wäre es mit dem Unterrichten dieses Zeug in der Schule (ich Figur Lehrer sind ziemlich ahnungslos über die Gründung eines Unternehmens). Wie wäre es damit, es einfacher zu machen, ein Geschäft zu gründen, als auf soziale Unterstützung zu gehen. Wie wäre es, wenn man in der Nachfrage Fähigkeiten trainiert kostenlos I8217m froh we8217re darüber reden, weil es wichtig ist. Vieles davon ist mit dem, was jetzt in der Welt los ist, gebunden. Es ist ein allgemeiner Sinn, dass die nächste Generation gewann, wie ihre Eltern8217 Generation, und das8217s ziemlich viel beispiellos. Das Versprechen, dass jemand etwas von sich selbst machen könnte, rutscht weg, und wir brauchen das zurück. Kontakt und Coil Fast In Control TwinCAT 3 Tutorial: Structured Text TwinCAT 3 enthält alle fünf IEC-61131-3 Sprachen: Leiterdiagramm, Strukturierter Text, Funktion Blockdiagramm, Sequenzdiagramm und Befehlsliste. Wenn du aus der Allen-Bradley-Welt kommst, dann wird offensichtlich Ladder-Diagramm deine bequemste Sprache sein, aber ich erwarte, dass du auch den Structured Text nutzen möchtest. In der Tat, Beckhoff selbst in der Regel präsentieren Structured Text als die Go-to-Sprache für die Programmierung in TwinCAT 3. Ich ziehe es vor, die meisten meiner Programme in Leiter Diagramm für die offensichtlichen Gründe: Leichtigkeit der Fehlersuche und die Fähigkeit der Elektriker, um online mit dem Programmieren und debuggen Allerdings können wir das alte Sprichwort vergessen, das richtige Werkzeug für den Job, 8221 und es gibt Zeiten, in denen Structured Text das richtige Werkzeug ist und Ladder Diagram nicht. Structured Text hat Ähnlichkeiten mit Pascal oder BASIC (zumindest nachdem sie das Konzept der Zeilennummern von BASIC entfernt). Das wichtigste Merkmal von Structured Text für uns sind LOOP s. Die FOR Loop Imagine für einen Moment, dass Sie eine Reihe von tausend REAL Datenwerte haben und Sie wollen den Durchschnitt dieser Werte zu berechnen. Die Formel ist ziemlich einfach: fügen Sie sie einfach hinzu und teilen Sie sie mit 1000. Offensichtlich stellt dies einige Schwierigkeiten in Ladder Diagram, aber in Structured Text, können wir einfach eine FOR-Schleife verwenden. Beginnen Sie mit dem Erstellen einer neuen Funktion. Nennen Sie es AverageOf1000 und stellen Sie sicher, dass Sie eine Funktion mit dem Rückgabetyp von REAL auswählen. Und Structured Text (ST) in der Dropdown-Liste Implementation Language: Klicken Sie auf Öffnen. Jetzt hast du eine leere Strukturierte Text-Funktion: Wir könnten das Array als Eingabe übergeben, aber wenn du dich von dem letzten Abschnitt erinnerst, würde das das Kopieren des gesamten Arrays jedes Mal, wenn diese Funktion aufgerufen wird, was die Scan-Zeit negativ beeinflussen könnte. Es ist besser, große Datenstrukturen wie diese durch Verweis zu übergeben, was bedeutet, dass wir es als VARINOUT-Variable deklarieren: Als nächstes erklären wir einige lokale Variablen: Eins, um die Summe der Werte zu speichern, und ein anderer, um einen Index zu halten, wo we8217re zeigt auf in Das Array Jetzt können wir unsere Logik schreiben, die aus einer FOR-Schleife und einer Divisionsoperation besteht: In Zeile 1 initialisiert man den Wert der Variablen Summe auf 0. Beachten Sie, dass der Operator die Zuweisung bedeutet. Es berechnet den Ausdruck auf der rechten Seite (der RValue) und speichert ihn in der Variablen links (der LValue). Beachten Sie auch, dass jede Anweisung mit einem Semikolon endet. Dies ist wichtig und you8217ll erhalten einen Syntaxfehler, wenn Sie es nicht einschließen (die Ausnahme ist das Semikolon am Ende von Zeile 4, das optional ist, aber häufig in vielen Structured Text Beispielen enthalten ist). Die Zeilen 2 und 4 definieren die FOR-Schleife. Zeile 2 definiert eine Schleifenindexvariable (in diesem Fall Index genannt), gefolgt von einem Zuordnungssymbol (:). Dies bedeutet, dass die Indexvariable die Werte von 1 bis 1000 annehmen wird und BY 1 bedeutet, dass sie mit 1 zählen wird. Die Zeilen zwischen 2 und 4 werden mit jedem Wert des Index ausgeführt. Wenn du die Laufzeit diese Logik ausführen würdest, was du nicht sehen möchtest: grob: Set Index auf 1 Zeile ausführen 3 Index setzen auf 2 Zeile ausführen 3 Zeile auf 3 setzen Zeile ausführen 3 Index auf 4 ausführen Zeile 3 ausführen 5 Zeile ausführen 7 8230 Zeile auf 999 setzen Zeile ausführen 3 Index auf 1000 ausführen Zeile 3 ausführen Wie Sie sehen können, können Schleifen einen erheblichen Einfluss auf die Scanzeit haben, zumal die Anzahl der Iterationen hoch wird. Wenn Sie TwinCAT 3 auf einem modernen PC laufen lassen, dann sind 1000 Iterationen zu schlecht, aber das Ausführen einer Million Iterationen auf einem 2 GHz PC wird wahrscheinlich ein Minimum von 0,5 Millisekunden nehmen, und das8217s, ohne irgendetwas in der Schleife zu tun. Sie müssen sich dessen bewusst sein und entsprechend programmieren. Wenn du die Liste der letzten 100 Sensor-Lesungen mitteln möchtest, dann machst du mir Sorgen darüber, aber wenn du Mathe-schwere Berechnungen an Tausenden von Datenpunkten machst, dann sei mir klar, dass es zu viel Arbeit in einer Scan-Zeit sein könnte. Zeile 5 nimmt die Summe und teilt sich um 1000 und gibt das Ergebnis dem Rückgabewert der Funktion zu. Beachten Sie, dass ich einen Dezimalpunkt auf den Wert 1000.0 und ich tat dies, um den Leser daran erinnern, dass I8217m Umgang mit Gleitkommazahlen hier. Dies ist eine Stilwahl. Du musst es nicht machen. Die WHILE-Schleife (und IFTHENELSE-Blöcke) Eine andere Art von Schleife ist die WHILE-Schleife. Anstatt eine feste Anzahl von Malen wie eine FOR-Schleife auszuführen, kann sie ausgeführt werden, solange eine Bedingung wahr ist. Zum Beispiel, let8217s sagen, wir wollen den ersten Index in einem Array finden, wo der Wert größer als ein Wert ist: Der Zweck dieser Funktion ist es, ein Array von 1000 Werten zu suchen und den ersten Index zurückzugeben, wo der Wert größer als einige Schwelle ist . Wenn es keine Werte mehr als die Schwelle findet, dann gibt es 0 zurück, was ein ungültiger Index ist. Zeile 1 initialisiert eine boolesche Flagge, gefunden. Zu FALSE. Da dies eine Funktion ist, ist it8217s nicht wirklich notwendig, da der Wert bei jedem Aufruf der Funktion auf false initialisiert würde, aber wenn dies ein Funktionsblock wäre, dann möchtest du diese Zeile einschließen, weil der Wert vom Aufruf zum Aufruf beibehalten würde . Zeile 2 initialisiert die Indexvariable zum ersten Array-Index (1). Zeilen 3 und 9 definieren die WHILE-Schleife. Die Zeilen 4 bis 8 werden wiederholt ausgeführt, solange der Ausdruck in Zeile 3 true zurückgibt. Wie Sie sehen können, schlagen wir, bis wir es finden, oder der Index übergibt die obere Grenze des Arrays. Die Zeilen 4 bis 8 umfassen einen IFTHENELSE-Block. Wenn der Ausdruck in Zeile 4 wahr ist, führt er Zeile 5 aus. Wenn der Ausdruck auf Zeile 4 falsch ist, führt er stattdessen Zeile 7 aus. Um zu zeigen, wie das funktioniert, nehmen Sie an, dass die Werte im Array 25, 50, 75, 100, 125, etc. sind. Auch annehmen, dass Threshold 80 ist. Wir würden erwarten, dass die Funktion einen Wert von 4 zurückgibt. Hier8217s wie die Funktion ausgeführt wird: Line 2 setzt Index auf 1 Zeile 3 wertet auf true aus, weil Gefunden ist falsch und Index ist 1 Zeile 4 wertet false aus (25 ist nicht größer als 80) Zeile 7 setzt Index auf 2 Zeile 3 wertet auf true aus, weil Gefunden falsch ist und Index 2 ist Zeile 4 bewertet false (50 ist nicht größer als 80) Zeile 7 setzt Index auf 3 Zeile 3 wertet auf true aus, weil Gefunden ist falsch und Index ist 3 Zeile 4 wertet false aus (75 ist nicht größer als 80) Zeile 7 setzt Index auf 4 Zeile 3 bewertet wahr, weil Gefunden ist falsch und Index ist 4 Zeile 4 wertet auf wahr (100 ist größer als 80) Zeile 5 Sätze Gefunden zu wahr Zeile 3 wertet falsch aus, weil Gefunden ist wahr Zeile 11 wertet auf wahr Zeile 12 setzt die Rückgabewert der Funktion auf 4 (da Index den Wert 4 hat) Während dies eine vollkommen vernünftige Funktion ist, gibt es auch einige Probleme damit. Zunächst einmal ist die Scan-Zeit ziemlich variabel. Die Worst-Case-Scan-Zeit ist, wenn der Wert isn8217t gefunden wird, und es gibt 0 zurück. In diesem Fall iteriert es durch das gesamte Array. Im besten Fall gibt es 1. Variable Scan-Zeiten können zu Problemen führen, wenn der schlimmste Fall nie getestet wird, oder wenn Sie eine Menge von Funktionen wie diese und dort8217s einige diabolische Fall haben, wo alle von ihnen müssen die schlimmsten Fall auf der Gleiche Scan, und Sie überschreiten Ihre zulässige Scan-Zeit. Zweitens ist die Logik komplex. Manche von euch könnten mich lachen, um das zu sagen. Wenn du einen PC-Programmierer in C oder BASIC schreibst, dann ist die obige Funktion eigentlich ganz einfach, doch bei der SPS-Programmierung haben wir eine ungewöhnliche Betonung auf Einfachheit. Wir wollen Logik, die offensichtlich korrekt ist, wenn wir es betrachten, und die obige Funktion ist offensichtlich richtig, wenn man ihm eine beträchtliche Menge an Analyse gibt. Um es zu analysieren, musst du wirklich computer8221 spielen und durch mindestens 2 verschiedene Szenarien laufen: eine, wo der Wert gefunden wird, und eine, wo it8217s nicht gefunden wird. Früher in diesem Abschnitt habe ich darüber gesprochen, dass Elektriker mit unseren Programmen online gehen und Fehlersuche machen. Ein Elektriker kann Ladder Diagram verstehen, und mit ein wenig Arbeit können sie wahrscheinlich das FOR-Loop-Beispiel oben verstehen, aber es werden eine Menge Leute geben, die dieses Beispiel einer WHILE-Schleife mit IFTHENELSE-Blöcken verstehen können. Wenn Sie glauben, dass diese Leute don8217t irgendwelche Geschäfte haben, die online mit einer SPS gehen, dann schlagen Sie vor, dass Sie Ihre Haltung ändern sollten. Automation ist ein Mannschaftssport und wir haben keinen Platz im Team für große Egos. Verwenden Sie die einfachste Logik, die Sie möglicherweise können (nicht die kürzesten). Wenn die Maschine you8217re Programmierung hat 10 Motoren, don8217t versuchen, die Motor-Startstop-Logik in Structured Text mit einer FOR-Schleife zu schreiben. Don8217t sogar einen Funktionsblock machen und ihn 10 mal wieder verwenden. Schreiben Sie einfach 10 verschiedene Programme in Ladder Diagramm und kopieren Sie die Logik. Sicher, sie könnten eine gemeinsame Logik teilen, wie eine OkToRunMotors-Spule, die in einem anderen Programm eingestellt wird. Denken Sie daran, dass diese 10 physikalisch verschiedene Motoren sind und die Bedingungen für das Starten und Stoppen von ihnen sind wahrscheinlich im Laufe der Zeit ändern. Erkenne das und halte die Logik getrennt. Auf der anderen Seite ist Structured Text das richtige Werkzeug für die Event-Logging - und Rezeptur-Logik eines Programms. Ein Elektriker, der sich in die SPS einloggt, um zu verstehen, warum ein Motor nicht mit dem Event-Logging-Modul beschäftigt ist. Structured Text ist auch das richtige Werkzeug zum Manipulieren von Daten, wie z. B. ein Scan, der von einem Barcode-Scanner oder einem RFID-Leser empfangen wird. Komplexe Mathematik wird auch leichter in Structured Text ausgedrückt. Mit dem richtigen Werkzeug für den Job bedeutet, mehr als das Problem selbst zu berücksichtigen. Vergewissern Sie sich, dass Sie die Fähigkeiten Ihres Teams und die Kunden8217s Fähigkeiten auch berücksichtigen. Don8217t Loop auf einem Input Ein Anfänger Programmierer wird dies schreiben: Beachten Sie, wie we8217re Looping auf eine Eingabe. Eine Eingabe ist eine reale physikalische Eingabe. Es ändert sich nur, wenn ein IO-Scan auftritt. Wenn die Laufzeit diese Logik ausführt, wird sie in die Schleife gelangen und eventuell niemals beenden, und keiner der restlichen Programme wird wieder ausgeführt. Die Maschine wird zum Einfrieren erscheinen, die Ausgänge bleiben in ihrem letzten Zustand und es werden schlechte Dinge passieren. Einfach, wenn you8217re mit einer Eingabe als die bedingte in einer WHILE-Schleife, dann Sie don8217t haben ein gutes Verständnis davon, wie die PLC-Laufzeit funktioniert, und Sie müssen aufhören und gehen Sie zurück zum Anfang. Die meisten PLCs arbeiten, indem sie die physikalischen Eingänge in den Speicher lesen, die Programmlogik ausführen und die neuen Werte der Ausgänge auf die tatsächlichen physikalischen Ausgänge kopieren (das ist eine Vereinfachung und nicht wahr für alle SPS, aber it8217s ein gutes Modell zum Anfang), Und dann tut es immer wieder Die Zeit, die es braucht, um alles zu tun, was Ihre Scan-Zeit ist, und wir wollen, dass die Scan-Zeit so kurz wie möglich ist. Wenn Sie das Programm ausführen, um eine Schleife einzugeben, die darauf wartet, dass ein Eingang eingeschaltet wird, wird das Programm im Wesentlichen gestoppt. In manchen Fällen wird es auch verhindern, dass der IO-Scan passiert, so dass es nicht möglich ist, diesen Eingang wieder zu ändern. Die Maschine wird für immer einfrieren. Ladder Diagramm doesn8217t geben Ihnen die Möglichkeit, sich selbst in den Fuß so zu schießen, aber Structured Text tut. Bleib weg von unendlichen Schleifen. Mischen von Leiter-Diagramm und strukturierten Text I8217ve gezeigt, wie Sie Programme, Funktionen und Funktionsblöcke in Structured Text schreiben können, aber manchmal it8217s nett, ein wenig strukturierten Text in der Mitte Ihres Leiter-Diagramm-Programms hinzuzufügen. Es stellt sich heraus, dass ein Programm kann etwas namens Action (das ist wie ein Mini-lokalen Unterprogramm, das Sie von Ihrem Programm anrufen können) und die Aktion kann in einer anderen Umsetzungssprache als das übergeordnete Programm geschrieben werden. So fügen Sie eine Aktion hinzu. Klicken Sie mit der rechten Maustaste auf ein bestehendes Programm (Ladder Diagram) und wählen Sie Add-Action8230 aus dem Kontextmenü. Alles, was Sie eingeben müssen, ist ein Name und wählt eine Implementierungssprache. Wähle strukturierten Text. Die neue Aktion wird im Solution Explorer unter deinem Programm angezeigt. Die Aktion hat Zugriff auf alle Deklarationen (Eingänge, Ausgänge und lokale Variablen) des übergeordneten Programms oder POU. Sie können die Aktion wie jedes andere Programm anrufen: fügen Sie einfach einen Block hinzu und geben Sie den Aktionsnamen ein. String-Funktionen String-Funktionen können sowohl im Leiterdiagramm als auch im strukturierten Text verwendet werden, aber wenn Sie anfangen, komplizierte Stringmanipulationen zu machen, dann schlage ich vor, in strukturierten Text zu verschieben, weil es einfacher zu verstehen ist. Hier sind Ihre typischen String-Funktionen und was sie tun: LEN (s) 8211 gibt die Anzahl der Zeichen in String zurück. LEFT (s, n) 8211 gibt die n linksten Zeichen aus String s zurück oder gibt s zurück, wenn n LEN (s ) RIGHT (s, n) 8211 gibt die n-rechten Zeichen aus String s zurück oder gibt s zurück, wenn n LEN (s) MID (s, n, p) 8211 n Zeichen aus String s zurückgibt, beginnend bei Position p (first Zeichenfolge ist 1, nicht 0) CONCAT (s1, s2) 8211 gibt die Strings s1 und s2 zusammen, die miteinander verbunden sind (verknüpft) zusammen INSERT (s1, s2, p) 8211 gibt einen neuen String zurück, der durch Einfügen von s2 in s1 an Position p DELETE (s , N, p) 8211 das Gegenteil von MID. (S1, s2, n, p) 8211 kombiniert DELETE und INSERT 8211 entfernt n Zeichen von s1 beginnend bei Position p und ersetzt sie mit s2 FIND (s1, s2) 8211 Gibt die Position des Strings s2 in String s1 oder 0 zurück, wenn nicht gefunden, und ist Groß - / Kleinschreibung Sie können natürlich eigene String-Funktionen erstellen. Zum Beispiel könnte es sinnvoll sein, eine andere Ersetzungsfunktion zu haben, die 3 Zeichenfolgen enthält: eine Zeichenfolge, die gesucht werden soll, eine Zeichenfolge, um einen String zu finden, um alle Instanzen der gefundenen Zeichenfolge zu ersetzen: Beachten Sie, wie die Variablen stattdessen als TMaxString deklariert werden Von STRING 8230 STRING Einschränkungen Da Variablen statisch in TwinCAT 3 zugeordnet sind, müssen Sie bei der Definition einer STRING-Variablen die Länge deklarieren. Implizit sind dies 80 Zeichen, und es verbraucht bis zu 81 Bytes Speicher (80 für die Daten und ein Byte für einen Null-Terminator). Strings sind auf eine Länge von 255 Zeichen beschränkt. Es gibt einen bestimmten Typ namens TMaxString, der ein Alias für STRING (255) ist. Sei vorsichtig, weil TwinCAT 3 einen String auf die maximal definierte Länge des Zielstrings stumm schneidet, wenn du eine Zuweisung machst. Wenn du deine eigenen String-Funktionen machst, solltest du TMaxString als Variablentyp verwenden, um sicherzustellen, dass sie mit einem String arbeiten, der an sie übergeben wird. Wenn Sie don8217t sind, werden die Ein - und Ausgangsvariablen stillschweigend auf die angegebene Länge gekürzt. Schlussfolgerungen Strukturierter Text ist ein mächtiges Werkzeug. In einigen PLCs, wie die Allen-Bradley ControlLogix Linie, musst du extra für den Structured Text Editor bezahlen, aber mit TwinCAT 3 bekommst du es kostenlos. (Eigentlich bekommst du den Leiter-Diagramm-Editor kostenlos zu8230) Mit großer Power kommt große Verantwortung. Verwenden Sie Ihre neuen Kräfte mit Bedacht und sparsam. Bei der Programmierung von SPS ist die erste Priorität die Richtigkeit und die zweite Priorität ist die Lesbarkeit. Niemand bekommt Punkte für das Schreiben weniger Zeilen Code. Erinnere dich daran. Kommentarfunktion ist geschlossen.
No comments:
Post a Comment