IL, SFC, ST
Pendahuluan IEC 1131-3 pemrograman : Instruction Lists(IL) Sequential Function Chart(SFC) Structured Text(ST) Merupakan cara memprogram PLC selain dengan Ladder Diagram Lebih ke source code based programming method
Instruction Lists Merupakan pemrograman PLC dengan mengetikkan instruksi-instruksinya daripada simbol-simbolnya IL berisi daftar instruksi per baris, tiap baris berisi instruksi dan operan Untuk mengatasi keragaman bahasanya, maka IEC mengeluarkan standar mnemonik untuk instruksinya
Contoh IL : Untuk menandai bagian program digunakan label LD A (* load A *) AND B (* and B *) ST Q (* out ke Q *) Untuk menandai bagian program digunakan label PUMP_OK : LD C Negasi(NOT) menggunakan akhiran N ANDN B
Ladder dan IL
OR
NOR
NAND
XOR
Lebih dari 1 Rung
Contoh Program
Sequential Function Chart(SFC) Merupakan representasi simbolik dari cara kerja sebuah sistem yang menunjukkan sekuen-sekuen yang terjadi dalam prosesnya Contoh : sekuen lampu lalu lintas
Elemen SFC Operasinya digambarkan sebagai beberapa state atau kondisi yang terhubung secara sekuensial yang dilambangkan dengan kotak. Langkah inisialisasi memiliki simbol yang berbeda
Setiap state yang terkoneksi pasti memiliki suatu kondisi yang harus dipenuhi(transfer condition) , yang dikoneksikan dengan garis horizontal, sebelum state selanjutnya dijalankan Jika dan hanya jika transfer condition terpenuhi, maka sebuah state dapat berlanjut ke state setelahnya
Prosesnya akan berlangsung sebagai perpindahan state satu ke yang lain sampai siklusnya selesai Output atau aksi tiap state diwakili dengan kotak yang dihubungkan dengan garis horizontal ke state yang bersangkutan
Contoh SFC
Percabangan dan Konvergensi Percabangan Selektif
Percabangan Paralel
Konvergensi(OR)
Konvergensi Simultan : state selanjutnya bisa mengikuti lebih dari 1 state sebelumnya
Aksi dalam SFC Tiap state pasti memiliki aksi yang harus dilakukan agar dapat berpindah ke state selanjutnya Aksi dapat diwujudkan dalam Ladder, Blok Fungsi, IL, maupun ST
Aksi biasanya diawali dengan sebuah penanda khusus : N : no qualifier – tidak ada aksi yang disimpan P : pulse – aksi hanya dilakukan sekali D : delayed – aksi akan dijalankan selang waktu tertentu L : limited – aksi akan dijalankan hanya dalam selang waktu tertentu
Stuctured Text (ST) Pemrograman PLC dengan bahasa seperti PASCAL, case insensitive Dipisahkan oleh semikolon(;) untuk tiap barisnya Contoh : LightA := SwitchA; X := Y; LightA := SwitchA OR SwitchB;
Operator
Variabel Bentuk : %[lokasi][tipe][alamat] Lokasi : Tipe : Contoh : I = input memori Q = output memori Tipe : X = bit B = byte W = word D = double word L = long word Contoh : AT dipakai untuk menyatakan langsung variabel ke sebuah alamat Input1 AT %IX100
Instruksi Selektif IF…THEN…ELSE : IF (Limit_switch1 AND Workpiece_Present) THEN Gate1 :- Open; Gate2 :- Close; ELSE Gate1 :- Close; Gate2 :- Open; End_IF; IF (I:000/00 = 1) THEN O:001/00 :- 1; O:000/01 = 0;
CASE : CASE (Temperature) OF 0 ... 40 ; Furnace_switch :- On; 40 ... 100 Furnace_switch :- Off; ELSE End_CASE;
Instruksi Iterasi FOR…DO : WHILE…DO : FOR Input :- 10 to 0 BY -1 DO Output :- Input; End_FOR; WHILE…DO : OutputQ :- 0; WHILE InputA AND InputB OutputQ =: OutputQ + 1; End_WHILE;
REPEAT…UNTIL : OutputQ :- 0 REPEAT OutputQ = OutputQ + 1; UNTIL (Input1 = Off) OR (OutputQ > 5) End_REPEAT;
Program ST TYPE Motor: ( Stopped, Running); End_TYPE; Definisikan tipe data yang akan dipakai TYPE Motor: ( Stopped, Running); End_TYPE; TYPE Valve: (Open, shut); TYPE Pressure: REAL; (*The pressure is an analogue value*)
Deklarasikan definisi variabelnya : VAR_IN (*Inputs*) PumpFault : BOOL; (*Pump operating fault is a Boolean variable*) End_VAR; VAR_OUT (*Outputs*) Motor_speed : REAL; VAR_IN Value: INT; (*The value is an integer*) VAR Input1 AT %IX100; (*Input1 is located at input memory bit 100*) Temp : REAL :-100; (*Initial value is a an analogue number 100*)