Το περιβάλλον χωρίζεται στις εισόδους αριστερά 16 ψηφιακές και 4 αναλογικές, τη ροή εκτέλλεσης στο κέντρο και τις εξόδους δεξιά. Οι ψηφιακές είσοδοι μπορεί να είναι μόνιμες με check αριστερού click και στιγμιαίες με check δεξί κλίκ. Για την απλούστευση της εκπαιδευτικής λογικής οι εξοδοι είναι ψηφιακές και αναλογικές (στην περίπτωση ψηφιακής τιμής παρουσιάζουν 0 ή 1), εκτός απο τιμές των εξόδων παρουσιάζονται και οι τιμές των βοηθητικών, οι καταμετρητές και τα χρονικά. Κάτω ακριβώς από αυτά ο χρήστης μπορεί να εισάγει τον κώδικά του υπό τη μορφή STL (Statement List), να τον επαναφορτώσει "Reload" στο PLC ακόμα και εν λειτουργία "Run". Οποτεδήποτε ο χρήστης επιθυμεί να σταματήσει το PLC από την εκτέλεση του Statement List μπορεί να πατήσει "Stop" και αν θέλει να συνεχίσει "Run"...
Για την εκτέλεση του προγράμματος χρησιμοποιούνται:
Υπάρχει μεταφορά των αποτελλεσμάτων των πράξεων από την Accu1 προς την Accu2 οπότε το ποιό πρόσφατο αποτέλλεσμα είναι πάντα στον Accu1.
Για την απλούστευση της λογικής δεν υπάρχουν bitwise operations ή δομές όπως byte, word, dword κλπ...
Προσοχή στα κενά και τις παρενθέσεις. Οι εκφράσεις πρέπει να είναι ακριβείς, να δίδονται με πεζούς χαρακτήρες, για να γίνονται κατανοητές αλλιώς το PLC μπαίνει σε stop, δεν προχωράνε οι κύκλοι ή βγάζει !!! σε κάποιες εντολές που δεν γίνονται κατανοητές και δεν λαμβάνονται υπ όψιν... Τα σχόλια ξεκινούν με // εμφανίζουν μεν !!! αλλά δεν επηρεάζουν την εκτέλεση του προγράμματος.
set, clear χωρίς παραμέτρους κάνει τη RLO 1 ή 0
a, o, x, an, on, xn, not δέχονται ως παράμετρο ix ή mx ή qx ή cx ή tx και εκτελλεί την εκάστοτε λογική πράξη
πχ:
a i1
o i2
Η RLO θα πάρει ως αποτέλλεσμα RLO=i2 or i2
=, s, r δέχονται ως παράμετρο mx ή qx και αποδίδει σε αυτήν την τιμή της RLO
fp, fn δέχονται ως παράμετρο mx και αποδίδουν αληθές σε αυτήν μόνο για τον κύκλο που θα συμβεί η μεταβολή της RLO θετική ή αρνητική
l (L μικρό) χρησιμοποιείται για να φορτωθεί τιμή σε κάποιον καταχωρητή και δέχεται παραμέτρους vx ή mx ή qx ή cx ή δεκαδικός αριθμός πχ 2.3 ή - rtc, με παραμέτρους yyyy, mo, dd, dow, hh, mm, ss για τιμές από το real time clock.
κατά το load η τιμή της accu1 μεταφέρεται στον accu2 και η νέα τιμή φορτώνεται στην accu1
Αφού φορτωθούν οι τιμές με τη χρήση του l μπορούν να πραγματοποιηθούν οι παρακάτω πράξεις:
+r, -r, *r, /r, ^r, mod, sqr, sin, cos, tan, asin, acos, atan.
Για τις πράξεις με 2 τελεστές η πράξη συμβαίνει accu2 (+-*/^mod) accu1 και αποδίδεται στην accu1 μετακινώντας την προηγούμενη τιμή του στον accu2.
Για πράξεις με έναν τελεστή η πράξη συμβαίνει για τον accu1 και αποδίδεται σε αυτόν μετακινώντας την προηγούμενη τιμή του στον accu2.
t για μεταφορά του accu1 σε αναλογική έξοδο με παράμετρο mx, qx
>,<,=>,<=,== για σύγκριση τιμών ανάμεσα σε Accu1 και Accu2 για ενεργοίηση της RLO. Συμβαίνει σύγκριση Accu2 (>,<,=>,<=,==) Accu1. H RLO αποκτά τιμή βάσει της αλήθειας της σύγκρισης
Παραδείγματα:
//v0=3 enable q0
l v0
l 3,0
==
= q0
//v1>real time clock seconds enable q1
l v1
l rtc ss
>
= q1
//v2 convert 4-20mA to 0-10
l v2
l 0,625
*r
l 2,5
-r
t m0
Απόδοση αρχικής τιμής -είναι πολύ σημαντικό να αποδοθεί αρχική τιμή σε έναν καταμετρητή πριν τη χρήση του...
lcu, lcd με παράμετρο cx και μια ακέραια τιμή. Στην αύξουσα απαρίθμηση η τιμή στόχος είναι αυτή που αποδίδεται κατά τον ορισμό στο lcu, ενώ στην φθίνουσα η τιμή στόχος είναι μέχρι η απαρίθμιση να κατέβει στο 0
cu, cd με παράμετρο cx προκειμένου να προχωρήσει η απαρίθμηση προς τα πάνω η προς τα κάτω, εφόσον οι λογικές πράξεις που προηγούνται κάνουν την RLO αληθή.
Εφόσον ο απαριθμητής πετύχει την τιμή στοχο θα οδηγήσει σαν ψηφιακό σήμα (a cx) την ανάλογη λογική πράξη αν χρησιμοποιηθεί σε μια τέτοια.
Εναλλακτικά σε οποιοδήποτε σημείο της απαρίθμισης μπορεί να χρησιμοποιηθεί σε μια μαθηματική πράξη ως τιμή (l cx)
rcd, rcu με παράμετρο cx, προκειμένου να επαναφέρουν τον απαριθμητή στην αρχική του κατάσταση, εφόσον οι λογικές πράξεις που προηγούνται κάνουν την RLO αληθή.
Παραδείγματα:
//Counter Without Possitive edge detection
lcd c0 5
a i0
cd c0
a c0
s q0
a i1
r q0
rcd c0
Παραδείγματα:
// Counter With Possitive edge detection
a i0
fp m0
lcd c0 5
a m0
cd c0
a c0
s q0
a i1
r q0
rcd c0
Απόδοση αρχικής τιμής-είναι πολύ σημαντικό να αποδοθεί αρχική τιμή σε ένα χρονικό πριν τη χρήση του...
lt με παράμετρο tx και μια ακέραια τιμή που είναι η τιμή σε δευτερόλεπτα για τον συγκεκριμένο timer
ts με παράμετρο tx, εφόσον οι λογικές πράξεις που προηγούνται κάνουν την RLO αληθή, οπότε ο timer θα ξεκινήσει να μετρά ανάποδα από τα x αρχικά δευτερόλεπτα μέχρι το 0 και κατόπιν αρνητικά...
Εφόσον το χρονικό μηδενίσει και γίνει αρνητικό θα οδηγήσει σαν ψηφιακό σήμα (a tx) την ανάλογη λογική πράξη αν χρησιμοποιηθεί σε μια τέτοια.
Εναλλακτικά σε οποιοδήποτε σημείο της χρονομέτρησης μπορεί να χρησιμοποιηθεί σε μια μαθηματική πράξη ως τιμή (l tx)
tc με παράμετρο tx για να επαναφέρει τον απαριθμητή στην αρχική του κατάσταση, εφόσον οι λογικές πράξεις που προηγούνται κάνουν την RLO αληθή...
Παραδείγματα:
//i0 count 30 sec enable q0, i1 clear timer
lt t0 30
a i0
ts t0
a t0
= q0
a i1
tc t0
Αν ένα τμήμα κώδικα περιληφθεί σε μια έκφραση fc[...] αυτό θα εκτελλεστεί μόνο αν η RLO είναι αληθής, αλλιώς ενεργοποιείται το jumpflag που παρακάμπτει όλο το τμήμα κώδικα...
Παραδείγματα:
a i0
fc[
a i1
o i2
= q0
]
a i1
a i2
= q1
Επιπλέον οι ψηφιακές εντολές μπορεί να ομαδοποιούνται με παρενθέσεις...
Με τις παρανθέσεις η λογική πράξη και η RLO αποθηκεύονται σε στοίβα και η τρέχουσα RLO γίνεται αληθής, εκτελλούνται οι λογικές και μαθηματικές πράξεις εντός των παρενθέσεων, κατόπιν η τρέχουσα RLO που υπολογίστηκε από τις εντολές εντός παρένθεσης συμμετέχει στην λογική πράξη που είχε αποθηκευτεί και με την RLO που είχε αποθηκευτεί…
Παραδείγματα:
a(
a i0
a i1
)
o i2
= q1
Άλλο παράδειγμα: Από το ρολόι πραγματικού χρόνου αν τα δευτερόλεπτα είναι 15 ή 30 ή υπάρχει σήμα στη i2 ενεργοποιείται η q1
a(
l rtc ss
l 15
==
)
o(
l rtc ss
l 30
==
)
o i2
= q1
Το λογισμικό παρέχεται εντελώς δωρεάν από την ιστοσελίδα με αυτοποιημένη εγκατάσταση και updates. Κατά την εγκατάσταση λόγω απουσίας ψηφιακού πιστοποιητικού ενδέχεται να παρουσιάστεί μήνυμα μη ασφαλούς εφαρμογής, προτείνεται να επιλέξετε "περισσότερες πληροφορίες" και κατόπιν "εκτέλεση". Αν το λογισμικό σας φαίνεται χρήσιμο παρακαλώ ενημερώστε με χρησιμοποιώντας τη φόρμα επικοινωνίας προκειμένου να συνεχίσουμε την ανάπτυξή του σαν ανεξάρτητο τμήμα από το SCADA.