1. Interface

1. Interface SRF04+Arduino dengan LabVIEW (simulasi Proteus)

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus:

Gambar 1.1 Rangkaian Arduino+SRF04 di Proteus

2. Buat program Arduino Uno/Nano berikut ini (memerlukan library NewPing):

  1. #include <NewPing.h>
  2. #define TRIGGER_PIN 8
  3. #define ECHO_PIN 9
  4. #define MAX_DISTANCE 100
  5. NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
  6. void setup() {
  7.   Serial.begin(9600);
  8. }
  9. void loop() {
  10.   delay(100);
  11.   Serial.println(sonar.ping_cm());
  12. }

3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 1.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 1.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 1.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 1.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 1.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai (+/-) SRF04: 

Gambar 1.7 Jalankan Proteus dan LabVIEW, ubah nilai (+/-) SRF04

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1uRU7tWB3hCursojfCJ5WMFAe8inf61EP/view?usp=sharing

Berikut ini video Interface SRF04+Arduino dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface SRF04+Arduino dengan LabVIEW yang disimulasikan di Proteus


============================================================

2. Interface GUR03+Arduino dengan LabVIEW (simulasi Proteus)

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus:

Gambar 2.1 Rangkaian Arduino+GRU03 di Proteus

2. Buat program Arduino Uno/Nano berikut ini (memerlukan library NewPing):

  1. #include <NewPing.h>
  2. #define TRIGGER_PIN 8
  3. #define ECHO_PIN 8
  4. #define MAX_DISTANCE 200
  5. NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
  6. void setup() {
  7.   Serial.begin(9600);
  8. }
  9. void loop() {
  10.   delay(100);
  11.   Serial.println(sonar.ping_cm());
  12. }

3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 2.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 2.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 2.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 2.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 2.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah +/- GRU03: 

Gambar 1.7 Jalankan Proteus dan LabVIEW, ubah nilai (+/-) GRU03

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1TNxj1jRHq9pn-ZgD211Bi7pxH8aDMEep/view?usp=sharing

Berikut ini video Interface SRF04+Arduino dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface GUR03+Arduino dengan LabVIEW yang disimulasikan di Proteus



============================================================

3. Interface DHT11+Arduino dengan LabVIEW (simulasi Proteus)

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus:

Gambar 3.1 Rangkaian Arduino+DHT11 di Proteus

2. Buat program Arduino Uno/Nano berikut ini (memerlukan library DHT Sensor):

  1. #include "DHT.h"
  2. #define DHTPIN 8
  3. #define DHTTYPE DHT11
  4. DHT dht(DHTPIN, DHTTYPE);
  5. void setup() {
  6.   Serial.begin(9600);
  7.   dht.begin();
  8. }
  9. void loop() {
  10.   delay(2000);
  11.   float t = dht.readTemperature();
  12.   float h = dht.readHumidity();
  13.   if (isnan(h) || isnan(t)) {
  14.     return;
  15.   }
  16.   Serial.print(t);
  17.   Serial.print(',');
  18.   Serial.println(h);
  19. }

3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 3.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 3.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 3.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 3.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 3.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah +/- DHT11: 

Gambar 3.7 Jalankan Proteus dan LabVIEW, ubah nilai (+/-) DHT11

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1UM6TQG1FKgkEsqFhPmFzjFc9rThMqeqQ/view?usp=sharing


Berikut ini video Interface DHT11+Arduino dengan LabVIEW yang disimulasikan dengan Proteus:
Video Interface DHT11+Arduino dengan LabVIEW yang disimulasikan di Proteus


============================================================

4. Interface Thermocouple+Arduino dengan LabVIEW (simulasi Proteus)

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus:

Gambar 4.1 Rangkaian Arduino+Thermocouple di Proteus

2. Buat program Arduino Uno/Nano berikut ini (memerlukan library GyverMAX6675):

  1. #include "GyverMAX6675.h"
  2. #define SS 8
  3. #define CK 9
  4. #define DT 10
  5. GyverMAX6675<CK, DT, SS> sensor;
  6. float t = 0;
  7. void setup() {
  8.   Serial.begin(9600);
  9.   delay(1000);
  10. }
  11. void loop() {
  12.   if (sensor.readTemp()) t = sensor.getTemp();
  13.   Serial.println(t);
  14.   delay(1000);
  15. }
3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 4.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 4.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 4.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 4.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 4.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah +/- Thermocouple: 

Gambar 4.7 Jalankan Proteus dan LabVIEW, ubah nilai (+/-) Thermocouple

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/10E-vo73EYFTfPPZHQiDQoMsTNOUHatqx/view?usp=sharing

Berikut ini video Interface Thermocouple+Arduino dengan LabVIEW yang disimulasikan dengan Proteus:
Video Interface Thermocouple+Arduino dengan LabVIEW yang disimulasikan di Proteus


============================================================

5. Interface Kontrol PID Suhu dengan LabVIEW (simulasi Proteus) - Bagian 1

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus:

Gambar 5.1 Rangkaian kontrol PID suhu di Proteus

2. Buat program Arduino Uno/Nano berikut ini:
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <PID_v2.h>
  5. double Kp = 0, Ki = 0, Kd = 0;
  6. PID_v2 myPID(Kp, Ki, Kd, PID::Direct);
  7. Adafruit_SSD1306 display(128, 64, &Wire, -1);
  8. unsigned long skr = 0;
  9. void setup() {
  10.   Serial.begin(9600);
  11.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  12.     Serial.println(F("SSD1306 allocation failed"));
  13.     for (;;)
  14.       ;
  15.   }
  16.   pinMode(2, INPUT_PULLUP);
  17.   pinMode(8, OUTPUT);
  18.   pinMode(9, OUTPUT);
  19.   myPID.SetOutputLimits(-255, 255);
  20.   myPID.SetSampleTime(10);
  21.   delay(1000);
  22. }
  23. void loop() {
  24.   int setpoin = map(analogRead(A6), 0, 1023, 0, 100);
  25.   double sensor = analogRead(A0) / 10.23;
  26.   Kp = analogRead(A1) / 102.3;
  27.   Ki = analogRead(A2) / 102.3;
  28.   Kd = analogRead(A3) / 102.3;
  29.   int mulai = !digitalRead(2);
  30.   if (mulai) {
  31.     myPID.SetTunings(Kp, Ki, Kd);
  32.     myPID.Start(sensor, 0, setpoin);
  33.   }
  34.   const double output = myPID.Run(sensor);
  35.   analogWrite(10, abs(output));
  36.   if (output > 0) {
  37.     digitalWrite(8, LOW);
  38.     digitalWrite(9, HIGH);
  39.   }
  40.   if (output < 0) {
  41.     digitalWrite(9, LOW);
  42.     digitalWrite(8, HIGH);
  43.   }
  44.   if (millis() - skr > 100) {
  45.     display.clearDisplay();
  46.     display.setTextSize(2);
  47.     display.setTextColor(SSD1306_WHITE);
  48.     display.setCursor(0, 0);
  49.     display.print(F("SP : "));
  50.     display.println(setpoin);
  51.     display.print(F("PV : "));
  52.     display.println(sensor);
  53.     display.setTextSize(1);
  54.     display.print(F("OP : "));
  55.     display.println(output);
  56.     display.print(F("KP : "));
  57.     display.println(Kp);
  58.     display.print(F("KI : "));
  59.     display.println(Ki);
  60.     display.print(F("KD : "));
  61.     display.println(Kd);
  62.     display.display();
  63.     Serial.print(setpoin);
  64.     Serial.print(',');
  65.     Serial.println(sensor);
  66.     skr = millis();
  67.   }
  68. }

3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 5.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 5.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 5.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 5.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 5.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoin, Kp, Ki dan Kd, kemudian tekan tombol Start.

Gambar 5.7 Jalankan Proteus dan LabVIEW, ubah nilai Setpoin. Kp, Ki dan Kd, kemudian tekan tombol Start untuk menjalankan kontrol PID

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1_7fxZuaZzFTvv36tOy7LRQWw2dgmTDuR/view?usp=sharing

Berikut ini video Interface Kontrol PID Suhu dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Suhu dengan LabVIEW yang disimulasikan di Proteus


============================================================

6. Interface Kontrol PID Suhu dengan LabVIEW (simulasi Proteus) - Bagian 2

Langkah-langkahnya:

1. Buat rangkaian yang sama seperti Gambar 5.1 di atas:

Gambar 6.1 Rangkaian kontrol PID Suhu di Proteus, sama seperti Gambar 5.1

2. Buat program Arduino Uno/Nano berikut ini:

  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <PID_v2.h>
  5. bool go = false;
  6. int set0 = 0, set1 = 0, setpoin = 0;
  7. double KP = 0.0, KI = 0.0, KD = 0.0;
  8. int kp0 = 0, ki0 = 0, kd0 = 0;
  9. int kp1 = 0, ki1 = 0, kd1 = 0;
  10. PID_v2 myPID(KP, KI, KD, PID::Direct);
  11. Adafruit_SSD1306 display(128, 64, &Wire, -1);
  12. unsigned long skr = 0;
  13. void setup() {
  14.   Serial.begin(9600);
  15.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  16.     Serial.println(F("SSD1306 allocation failed"));
  17.     for (;;)
  18.       ;
  19.   }
  20.   pinMode(2, INPUT_PULLUP);
  21.   pinMode(8, OUTPUT);
  22.   pinMode(9, OUTPUT);
  23.   myPID.SetOutputLimits(-255, 255);
  24.   myPID.SetSampleTime(10);
  25.   delay(1000);
  26. }
  27. void loop() {
  28.   set0 = map(analogRead(A6), 0, 1023, 0, 100);
  29.   if (set0 != set1) {
  30.     setpoin = set0;
  31.     set1 = set0;
  32.   }
  33.   double sensor = analogRead(A0) / 10.23;
  34.   kp0 = analogRead(A1);
  35.   if (kp0 != kp1) {
  36.     KP = kp0 / 102.3;
  37.     kp1 = kp0;
  38.   }
  39.   ki0 = analogRead(A2);
  40.   if (ki0 != ki1) {
  41.     KI = ki0 / 102.3;
  42.     ki1 = ki0;
  43.   }
  44.   kd0 = analogRead(A3);
  45.   if (kd0 != kd1) {
  46.     KD = kd0 / 102.3;
  47.     kd1 = kd0;
  48.   }
  49.   int mulai = !digitalRead(2);
  50.   if (mulai || go) {
  51.     myPID.SetTunings(KP, KI, KD);
  52.     myPID.Start(sensor, 0, setpoin);
  53.     go = false;
  54.   }
  55.   const double output = myPID.Run(sensor);
  56.   analogWrite(10, abs(output));
  57.   if (output > 0) {
  58.     digitalWrite(8, LOW);
  59.     digitalWrite(9, HIGH);
  60.   }
  61.   if (output < 0) {
  62.     digitalWrite(9, LOW);
  63.     digitalWrite(8, HIGH);
  64.   }
  65.   if (millis() - skr > 100) {
  66.     display.clearDisplay();
  67.     display.setTextSize(2);
  68.     display.setTextColor(SSD1306_WHITE);
  69.     display.setCursor(0, 0);
  70.     display.print(F("SP : "));
  71.     display.println(setpoin);
  72.     display.print(F("PV : "));
  73.     display.println(sensor);
  74.     display.setTextSize(1);
  75.     display.print(F("OP : "));
  76.     display.println(output);
  77.     display.print(F("KP : "));
  78.     display.println(KP);
  79.     display.print(F("KI : "));
  80.     display.println(KI);
  81.     display.print(F("KD : "));
  82.     display.println(KD);
  83.     display.display();
  84.     Serial.print(setpoin);
  85.     Serial.print(',');
  86.     Serial.println(sensor);
  87.     skr = millis();
  88.   }
  89. }
  90. void serialEvent() {
  91.   while (Serial.available()) {
  92.     int a = Serial.parseInt();
  93.     float b = Serial.parseFloat();
  94.     float c = Serial.parseFloat();
  95.     float d = Serial.parseFloat();
  96.     if (Serial.read() == char(13)) {
  97.       setpoin = a;
  98.       KP = b;
  99.       KI = c;
  100.       KD = d;
  101.       go = true;
  102.     }
  103.   }
  104. }

3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 6.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 6.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 6.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 6.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 6.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint, Kp, Ki dan Kd, kemudian tekan tombol Confirm untuk menjalankan kontrol PID

Gambar 6.7 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint, Kp, Ki dan Kd, kemudian tekan tombol Confirm untuk menjalankan kontrol PID

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1bXDZCx_r9r43yp4KaUChGKOT-PU4BsU5/view?usp=sharing

Berikut ini video Interface Kontrol PID Suhu dengan LabVIEW yang disimulasikan dengan Proteus:



Video Interface Kontrol PID Suhu dengan LabVIEW yang disimulasikan di Proteus


============================================================

7. Interface Kontrol PID Kecepatan dengan LabVIEW (simulasi Proteus) - Bagian 1

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus:

Gambar 7.1 Rangkaian kontrol PID kecepatan di Proteus

2. Buat program Arduino Uno/Nano berikut ini:
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <Encoder.h>
  5. #include <PID_v2.h>
  6. Encoder myEnc(2, 3);
  7. int setpoin = 0;
  8. float kec = 0;
  9. float baru = 0;
  10. float lama = 0;
  11. double Kp = 0, Ki = 0, Kd = 0;
  12. PID_v2 myPID(Kp, Ki, Kd, PID::Direct);
  13. Adafruit_SSD1306 display(128, 64, &Wire, -1);
  14. unsigned long sbl = 0;
  15. void setup() {
  16.   Serial.begin(9600);
  17.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  18.     Serial.println(F("SSD1306 allocation failed"));
  19.     for (;;)
  20.       ;
  21.   }
  22.   pinMode(4, INPUT_PULLUP);  //go
  23.   pinMode(5, INPUT_PULLUP);  //cw
  24.   pinMode(8, OUTPUT);
  25.   pinMode(9, OUTPUT);
  26.   myPID.SetOutputLimits(-255, 255);
  27.   myPID.SetSampleTime(10);
  28.   delay(1000);
  29. }
  30. void loop() {
  31.   int sp = map(analogRead(A0), 0, 1023, 0, 1000);
  32.   const double input = kec;
  33.   Kp = analogRead(A1) / 204.8;  //0-5
  34.   Ki = analogRead(A2) / 102.4;  //0-10
  35.   Kd = analogRead(A3) / 51.2;   //0-20
  36.   double gap = abs(myPID.GetSetpoint() - input);
  37.   if (gap < 10) myPID.SetTunings(Kp / 10.0, Ki / 10.0, Kd / 10.0);
  38.   else myPID.SetTunings(Kp, Ki, Kd);
  39.   int cw = !digitalRead(5);
  40.   if (cw) setpoin = sp;
  41.   else setpoin = sp * -1;
  42.   int go = !digitalRead(4);
  43.   if (go) myPID.Start(input, 0, setpoin);
  44.   const double output = myPID.Run(input);
  45.   analogWrite(10, abs(output));
  46.   if (output > 0) {
  47.     digitalWrite(8, LOW);
  48.     digitalWrite(9, HIGH);
  49.   }
  50.   if (output < 0) {
  51.     digitalWrite(9, LOW);
  52.     digitalWrite(8, HIGH);
  53.   }
  54.   if (millis() - sbl > 100) {
  55.     baru = myEnc.read();
  56.     kec = (baru - lama) * 25.0;
  57.     lama = baru;
  58.     display.clearDisplay();
  59.     display.setTextSize(2);
  60.     display.setTextColor(SSD1306_WHITE);
  61.     display.setCursor(0, 0);
  62.     display.print(F("SP : "));
  63.     display.println(setpoin);
  64.     display.print(F("PV : "));
  65.     display.println(int(input));
  66.     display.setTextSize(1);
  67.     display.print(F("OP : "));
  68.     display.println(int(output));
  69.     display.print(F("KP : "));
  70.     display.println(Kp);
  71.     display.print(F("KI : "));
  72.     display.println(Ki);
  73.     display.print(F("KD : "));
  74.     display.println(Kd);
  75.     display.display();
  76.     Serial.print(setpoin);
  77.     Serial.print(',');
  78.     Serial.println(int(input));
  79.     sbl = millis();
  80.   }
  81. }
3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 7.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 7.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 7.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 7.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 7.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai ubah nilai Setpoint, Kp, Ki dan Kd, serta arah putaran (CW/CCW) kemudian tekan tombol Start.

Gambar 7.7 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint, Kp, Ki dan Kd, arah putaran (CW/CCW) kemudian tekan tombol Start.

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1GEhHnzInwO5ixowed-UwwVR4sUH5qc9E/view?usp=sharing

Berikut ini video Interface Kontrol PID Kecepatan dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Kecepatan dengan LabVIEW yang disimulasikan di Proteus


============================================================

8. Interface Kontrol PID Kecepatan dengan LabVIEW (simulasi Proteus) - Bagian 2

Langkah-langkahnya:

1. Buat rangkaian yang sama seperti Gambar 7.1:

Gambar 8.1 Rangkaian kontrol PID kecepatan di Proteus yang sama seperti Gambar 7.1

2. Buat program Arduino Uno/Nano berikut ini:
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <Encoder.h>
  5. #include <PID_v2.h>
  6. Encoder myEnc(2, 3);
  7. bool go = false;
  8. int set0 = 0, set1 = 0, sp = 0, setpoin = 0;
  9. float kec = 0;
  10. float baru = 0;
  11. float lama = 0;
  12. double KP = 0.0, KI = 0.0, KD = 0.0;
  13. int kp0 = 0, ki0 = 0, kd0 = 0;
  14. int kp1 = 0, ki1 = 0, kd1 = 0;
  15. PID_v2 myPID(KP, KI, KD, PID::Direct);
  16. Adafruit_SSD1306 display(128, 64, &Wire, -1);
  17. unsigned long sbl = 0;
  18. void setup() {
  19.   Serial.begin(9600);
  20.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  21.     Serial.println(F("SSD1306 allocation failed"));
  22.     for (;;)
  23.       ;
  24.   }
  25.   pinMode(4, INPUT_PULLUP);  //go
  26.   pinMode(5, INPUT_PULLUP);  //cw
  27.   pinMode(8, OUTPUT);
  28.   pinMode(9, OUTPUT);
  29.   myPID.SetOutputLimits(-255, 255);
  30.   myPID.SetSampleTime(10);
  31.   delay(1000);
  32. }
  33. void loop() {
  34.   set0 = map(analogRead(A0), 0, 1023, 0, 1000);
  35.   if (set0 != set1) {
  36.     sp = set0;
  37.     set1 = set0;
  38.   }
  39.   const double input = kec;
  40.   kp0 = analogRead(A1);
  41.   if (kp0 != kp1) {
  42.     KP = kp0 / 204.8;
  43.     kp1 = kp0;
  44.   }
  45.   ki0 = analogRead(A2);
  46.   if (ki0 != ki1) {
  47.     KI = ki0 / 102.4;
  48.     ki1 = ki0;
  49.   }
  50.   kd0 = analogRead(A3);
  51.   if (kd0 != kd1) {
  52.     KD = kd0 / 51.2;
  53.     kd1 = kd0;
  54.   }
  55.   double gap = abs(myPID.GetSetpoint() - input);
  56.   if (gap < 10) myPID.SetTunings(KP / 10.0, KI / 10.0, KD / 10.0);
  57.   else myPID.SetTunings(KP, KI, KD);
  58.   int cw = !digitalRead(5);
  59.   int mulai = !digitalRead(4);
  60.   if (mulai) {
  61.     if (cw) setpoin = sp;
  62.     else setpoin = sp * -1;
  63.     myPID.Start(input, 0, setpoin);
  64.   }
  65.   if (go) {
  66.     myPID.Start(input, 0, setpoin);
  67.     go = false;
  68.   }
  69.   const double output = myPID.Run(input);
  70.   analogWrite(10, abs(output));
  71.   if (output > 0) {
  72.     digitalWrite(8, LOW);
  73.     digitalWrite(9, HIGH);
  74.   }
  75.   if (output < 0) {
  76.     digitalWrite(9, LOW);
  77.     digitalWrite(8, HIGH);
  78.   }
  79.   if (millis() - sbl > 100) {
  80.     baru = myEnc.read();
  81.     kec = (baru - lama) * 25.0;
  82.     lama = baru;
  83.     display.clearDisplay();
  84.     display.setTextSize(2);
  85.     display.setTextColor(SSD1306_WHITE);
  86.     display.setCursor(0, 0);
  87.     display.print(F("SP : "));
  88.     display.println(setpoin);
  89.     display.print(F("PV : "));
  90.     display.println(int(input));
  91.     display.setTextSize(1);
  92.     display.print(F("OP : "));
  93.     display.println(int(output));
  94.     display.print(F("KP : "));
  95.     display.println(KP);
  96.     display.print(F("KI : "));
  97.     display.println(KI);
  98.     display.print(F("KD : "));
  99.     display.println(KD);
  100.     display.display();
  101.     Serial.print(setpoin);
  102.     Serial.print(',');
  103.     Serial.println(int(input));
  104.     sbl = millis();
  105.   }
  106. }
  107. void serialEvent() {
  108.   while (Serial.available()) {
  109.     int a = Serial.parseInt();
  110.     float b = Serial.parseFloat();
  111.     float c = Serial.parseFloat();
  112.     float d = Serial.parseFloat();
  113.     if (Serial.read() == char(13)) {
  114.       setpoin = a;
  115.       KP = b;
  116.       KI = c;
  117.       KD = d;
  118.       go = true;
  119.     }
  120.   }
  121. }

 3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 8.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 8.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 8.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 8.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 8.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai 

Gambar 8.7 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint, Kp, Ki dan Kd, kemudian tekan tombol Start.

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1E6N_-Fn4oaVx18Nnhsev8ogojw17F0Ui/view?usp=sharing

Berikut ini video Interface Kontrol PID Kecepatan dengan LabVIEW yang disimulasikan dengan Proteus bagian kedua:

Video Interface Kontrol PID Kecepatan dengan LabVIEW yang disimulasikan di Proteus bagian kedua


============================================================

9. Interface Kontrol PID Posisi dengan LabVIEW (simulasi Proteus) - Bagian 1

Langkah-langkahnya:

1. Buat rangkaian berikut ini di Proteus yang sama seperti Gambar 7.1:

Gambar 9.1 Rangkaian kontrol PID posisi di Proteus yang sama seperti Gambar 7.1

2. Buat program Arduino Uno/Nano berikut ini:
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <Encoder.h>
  5. #include <PID_v2.h>
  6. Encoder myEnc(2, 3);
  7. int setpoin = 0;
  8. double Kp = 0, Ki = 0, Kd = 0;
  9. PID_v2 myPID(Kp, Ki, Kd, PID::Direct);
  10. Adafruit_SSD1306 display(128, 64, &Wire, -1);
  11. unsigned long skr = 0;
  12. void setup() {
  13.   Serial.begin(9600);
  14.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  15.     Serial.println(F("SSD1306 allocation failed"));
  16.     for (;;)
  17.       ;
  18.   }
  19.   pinMode(4, INPUT_PULLUP);  //go
  20.   pinMode(5, INPUT_PULLUP);  //cw
  21.   pinMode(8, OUTPUT);
  22.   pinMode(9, OUTPUT);
  23.   myPID.SetOutputLimits(-255, 255);
  24.   myPID.SetSampleTime(10);
  25.   delay(1000);
  26. }
  27. void loop() {
  28.   int sp = map(analogRead(A0), 0, 1023, 0, 1000);
  29.   const double input = myEnc.read();
  30.   Kp = analogRead(A1) / 102.4;   //0-10
  31.   Ki = analogRead(A2) / 102.4;   //0-10
  32.   Kd = analogRead(A3) / 51.2;    //0-20
  33.   double gap = abs(myPID.GetSetpoint() - input);
  34.   if (gap < 10) myPID.SetTunings(0, 0, 0);
  35.   else myPID.SetTunings(Kp, Ki, Kd);
  36.   int cw = !digitalRead(5);
  37.   if (cw) setpoin = sp;
  38.   else setpoin = sp * -1;
  39.   int go = !digitalRead(4);
  40.   if (go) myPID.Start(input, 0, setpoin);
  41.   const double output = myPID.Run(input);
  42.   analogWrite(10, abs(output));
  43.   if (output > 0) {
  44.     digitalWrite(8, LOW);
  45.     digitalWrite(9, HIGH);
  46.   }
  47.   if (output < 0) {
  48.     digitalWrite(9, LOW);
  49.     digitalWrite(8, HIGH);
  50.   }
  51.   if (millis() - skr > 100) {
  52.     display.clearDisplay();
  53.     display.setTextSize(2);
  54.     display.setTextColor(SSD1306_WHITE);
  55.     display.setCursor(0, 0);
  56.     display.print(F("SP : "));
  57.     display.println(setpoin);
  58.     display.print(F("PV : "));
  59.     display.println(int(input));
  60.     display.setTextSize(1);
  61.     display.print(F("OP : "));
  62.     display.println(int(output));
  63.     display.print(F("KP : "));
  64.     display.println(Kp);
  65.     display.print(F("KI : "));
  66.     display.println(Ki);
  67.     display.print(F("KD : "));
  68.     display.println(Kd);
  69.     display.display();
  70.     Serial.print(setpoin);
  71.     Serial.print(',');
  72.     Serial.println(int(input));
  73.     skr = millis();
  74.   }
  75. }
3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 9.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 9.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 9.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 9.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 9.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai 

Gambar 9.7 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint, Kp, Ki dan Kd, kemudian tekan tombol Start.

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/13bCKIKObHLlq_vJOCi-LT4-ilz9GB-ka/view?usp=sharing

Berikut ini video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan di Proteus


============================================================

10. Interface Kontrol PID Posisi dengan LabVIEW (simulasi Proteus) - Bagian 2

Langkah-langkahnya:

1. Buat rangkaian yang sama seperti Gambar 9.1:

Gambar 10.1 Rangkaian kontrol PID posisi di Proteus yang sama seperti Gambar 9.1

2. Buat program Arduino Uno/Nano berikut ini:
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <Encoder.h>
  5. #include <PID_v2.h>
  6. Encoder myEnc(2, 3);
  7. bool go = false;
  8. int set0 = 0, set1 = 0, sp = 0, setpoin = 0;
  9. double KP = 0.0, KI = 0.0, KD = 0.0;
  10. int kp0 = 0, ki0 = 0, kd0 = 0;
  11. int kp1 = 0, ki1 = 0, kd1 = 0;
  12. PID_v2 myPID(KP, KI, KD, PID::Direct);
  13. Adafruit_SSD1306 display(128, 64, &Wire, -1);
  14. unsigned long skr = 0;
  15. void setup() {
  16.   Serial.begin(9600);
  17.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
  18.     Serial.println(F("SSD1306 allocation failed"));
  19.     for (;;)
  20.       ;
  21.   }
  22.   pinMode(4, INPUT_PULLUP);  //go
  23.   pinMode(5, INPUT_PULLUP);  //cw
  24.   pinMode(8, OUTPUT);
  25.   pinMode(9, OUTPUT);
  26.   myPID.SetOutputLimits(-255, 255);
  27.   myPID.SetSampleTime(10);
  28.   delay(1000);
  29. }
  30. void loop() {
  31.   set0 = map(analogRead(A0), 0, 1023, 0, 1000);
  32.   if (set0 != set1) {
  33.     sp = set0;
  34.     set1 = set0;
  35.   }
  36.   const double input = myEnc.read();
  37.   kp0 = analogRead(A1);
  38.   if (kp0 != kp1) {
  39.     KP = kp0 / 102.4;
  40.     kp1 = kp0;
  41.   }
  42.   ki0 = analogRead(A2);
  43.   if (ki0 != ki1) {
  44.     KI = ki0 / 102.4;
  45.     ki1 = ki0;
  46.   }
  47.   kd0 = analogRead(A3);
  48.   if (kd0 != kd1) {
  49.     KD = kd0 / 51.2;
  50.     kd1 = kd0;
  51.   }
  52.   double gap = abs(myPID.GetSetpoint() - input);
  53.   if (gap < 10) myPID.SetTunings(0, 0, 0);
  54.   else myPID.SetTunings(KP, KI, KD);
  55.   int cw = !digitalRead(5);
  56.   int mulai = !digitalRead(4);
  57.   if (mulai) {
  58.     if (cw) setpoin = sp;
  59.     else setpoin = sp * -1;
  60.     myPID.Start(input, 0, setpoin);
  61.   }
  62.   if (go) {
  63.     myPID.Start(input, 0, setpoin);
  64.     go = false;
  65.   }
  66.   const double output = myPID.Run(input);
  67.   analogWrite(10, abs(output));
  68.   if (output > 0) {
  69.     digitalWrite(8, LOW);
  70.     digitalWrite(9, HIGH);
  71.   }
  72.   if (output < 0) {
  73.     digitalWrite(9, LOW);
  74.     digitalWrite(8, HIGH);
  75.   }
  76.   if (millis() - skr > 100) {
  77.     display.clearDisplay();
  78.     display.setTextSize(2);
  79.     display.setTextColor(SSD1306_WHITE);
  80.     display.setCursor(0, 0);
  81.     display.print(F("SP : "));
  82.     display.println(setpoin);
  83.     display.print(F("PV : "));
  84.     display.println(int(input));
  85.     display.setTextSize(1);
  86.     display.print(F("OP : "));
  87.     display.println(int(output));
  88.     display.print(F("KP : "));
  89.     display.println(KP);
  90.     display.print(F("KI : "));
  91.     display.println(KI);
  92.     display.print(F("KD : "));
  93.     display.println(KD);
  94.     display.display();
  95.     Serial.print(setpoin);
  96.     Serial.print(',');
  97.     Serial.println(int(input));
  98.     skr = millis();
  99.   }
  100. }
  101. void serialEvent() {
  102.   while (Serial.available()) {
  103.     int a = Serial.parseInt();
  104.     float b = Serial.parseFloat();
  105.     float c = Serial.parseFloat();
  106.     float d = Serial.parseFloat();
  107.     if (Serial.read() == char(13)) {
  108.       setpoin = a;
  109.       KP = b;
  110.       KI = c;
  111.       KD = d;
  112.       go = true;
  113.     }
  114.   }
  115. }
3. Kompilasi program Arduino Uno/Nano, copy lokasi file Hex seperti gambar berikut ini:

Gambar 10.2 Kompilasi program Arduino, copy lokasi file Hex

4. Atur komponen Arduino Uno/Nano (ATmega328) berikut ini:

Gambar 10.3 Atur Program File = lokasi file Hex, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext. Clock, Clock Frequency = 16MHz

5. Atur COMPIM sesuai gambar berikut ini, gunakan COM pasangan:

Gambar 10.4 Isi Port dengan pasangan COM (lihat di Device Manager), dan Baudrate = 9600

6. Buat program LabVIEW seperti gambar berikut ini:

Gambar 10.5 Buat program LabVIEW seperti gambar di atas

7. Atur Port COM di LabVIEW, gunakan COM pasangan:

Gambar 10.6 Atur COMPIM di Proteus dan Port COM di LabVIEW dengan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai 
Setpoint, Kp, Ki dan Kd, baik di Proteus maupun di LabVIEW, kemudian tekan tombol Start untuk Proteus, atau tombol Go untuk LabVIEW.

Gambar 10.7 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint, Kp, Ki dan Kd, baik di Proteus maupun di LabVIEW, kemudian tekan tombol Start untuk Proteus, atau tombol Go untuk LabVIEW

Unduh file Proteus, program Arduino dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1kFq0oC6dCNRpF13WDiM4RilZSKD2YQNH/view?usp=sharing

Berikut ini video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan di Proteus


============================================================

11. Interface Kontrol PID Suhu di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 1

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini:

Gambar 11.1 Rangkaian kontrol PID Suhu dengan Outseal Nano di Proteus

Catatan: ada 7 kaki Outseal Nano yang digunakan, yaitu A.1 = Sensor Suhu (PV), A.2 = Setpoint (SP), R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:

Gambar 11.2 Ladder Diagram Kontrol PID Suhu Outseal

3. Setelah Ladder Diagram selesai, klik Settings, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 11.3 Atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test 

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.
Gambar 11.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 11.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 11.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 11.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 11.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data Holding register yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/14oH6KnPCdYJMon7hJQxbTn5kyoCe0qqq/view?usp=sharing

Berikut ini video Interface Kontrol PID Suhu dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Suhu di Outseal (simulasi Proteus) dengan LabVIEW 


============================================================

12. Interface Kontrol PID Suhu di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 2

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini, yang sama seperti rangkaian Gambar 11.1.

Gambar 12.1 Rangkaian kontrol PID Suhu dengan Outseal Nano di Proteus, sama seperti Gambar 11.1

Catatan: ada 7 kaki Outseal Nano yang digunakan, yaitu A.1 = Sensor Suhu (PV), A.2 = Setpoint (SP), R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:

Gambar 12.2 Ladder Diagram Kontrol PID Suhu Outseal v.2

3. Setelah Ladder Diagram selesai, klik Settings, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 12.3 Buka Settings, atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test 

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 12.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 12.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 12.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 12.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 12.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data Holding register yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di link ini: https://drive.google.com/file/d/15kbLrs3u-QAKxuYsKGVwOp7YSwDMfHHH/view?usp=sharing

Berikut ini video Interface Kontrol PID Suhu dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Suhu di Outseal (simulasi Proteus) dengan LabVIEW 


============================================================

13. Interface Kontrol PID Kecepatan di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 1

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini:

Gambar 13.1 Rangkaian kontrol PID Kecepatan dengan Outseal Nano di Proteus

Catatan: ada 9 kaki Outseal Nano yang digunakan, yaitu S.1 = Pengaturan arah putaran, S.5 = Deteksi arah putaran (Q 4013), S.6 = Encoder A, A.1 = Setpoint (SP), R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:

Gambar 13.2 Ladder Diagram Kontrol PID Kecepatan Outseal

3. Setelah Ladder Diagram selesai, klik Settings, atur di bagian Filter, yaitu di S.5 dan S.6, ubah nilainya dari 3 menjadi 0, dan di bagian Hardware, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 13.3(a) Atur Filter S.5 dan S.6 dari 30 ms menjadi 0 ms atau tanpa Filter

Gambar 13.3(b) Atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test 

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 13.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 13.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 13.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 13.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 13.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data Holding register yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1T5Rs8iH94PZSYtCAKbIuZaQg1mUTcey3/view?usp=sharing

Berikut ini video Interface Kontrol PID Kecepatan dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Kecepatan di Outseal (simulasi Proteus) dengan LabVIEW 


============================================================

14. Interface Kontrol PID Kecepatan di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 2

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini, rangkaian yang sama dengan Gambar 13.1:

Gambar 14.1 Rangkaian kontrol PID Kecepatan dengan Outseal Nano di Proteus, sama seperti rangkaian Gambar 13.1

Catatanada 9 kaki Outseal Nano yang digunakan, yaitu S.1 = Pengaturan arah putaran, S.5 = Deteksi arah putaran (Q 4013), S.6 = Encoder A, A.1 = Setpoint (SP), R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:

Gambar 14.2 Ladder Diagram Kontrol PID Kecepatan Outseal

3. Setelah Ladder Diagram selesai, klik Settings, atur di bagian Filter, yaitu di S.5 dan S.6, ubah nilainya dari 3 menjadi 0, dan di bagian Hardware, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 14.3(a) Atur Filter S.5 dan S.6 dari 30 ms menjadi 0 ms atau tanpa Filter

Gambar 14.3(b) Atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test 

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 14.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 14.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 14.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 14.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 14.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data Holding register yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1seGrunK0JGvZ3F0M6Mj1KE4_0EvjZWaQ/view?usp=sharing

Berikut ini video Interface Kontrol PID Kecepatan dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Kecepatan di Outseal (simulasi Proteus) dengan LabVIEW 


============================================================

15. Interface Kontrol PID Posisi di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 1

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini:

Gambar 15.1 Rangkaian kontrol PID Posisi dengan Outseal Nano di Proteus

Catatan: ada 10 kaki Outseal Nano yang digunakan, yaitu A.1 = Setpoint (SP), S.1 = pengaturan arah cw/ccw, S.5 = Encoder A, S.6 = Encoder B, S.7 = deteksi arah cw/ccw, R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:

Gambar 15.2 Ladder Diagram Kontrol PID Posisi Outseal

3. Setelah Ladder Diagram selesai, klik Settings, atur di bagian Filter, yaitu di S.5, S.6 dan S.7, ubah nilainya dari 3 menjadi 0, dan di bagian Hardware, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 15.3(a) Atur Filter S.5, S.6 dan S.7 dari 30 ms menjadi 0 ms atau tanpa Filter

Gambar 15.3(b) Atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test 

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 15.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 15.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 15.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 15.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 15.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data Holding register yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1DP1E8NQa1cXBYPsCUT59Krc0oUYnC7h9/view?usp=sharing

Berikut ini video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Posisi di Outseal (simulasi Proteus) dengan LabVIEW 


============================================================

16. Interface Kontrol PID Posisi di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 2

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini, rangkaian yang sama dengan Gambar 15.1:

Gambar 16.1 Rangkaian kontrol PID Posisi dengan Outseal Nano di Proteus, sama seperti rangkaian Gambar 15.1

Catatanada 10 kaki Outseal Nano yang digunakan, yaitu A.1 = Setpoint (SP), S.1 = pengaturan arah cw/ccw, S.5 = Encoder A, S.6 = Encoder B, S.7 = deteksi arah cw/ccw, R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:

Gambar 16.2 Ladder Diagram Kontrol PID Posisi Outseal

3. Setelah Ladder Diagram selesai, klik Settings, atur di bagian Filter, yaitu di S.5, S.6 dan S.7, ubah nilainya dari 3 menjadi 0, dan di bagian Hardware, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 16.3(a) Atur Filter S.5, S.6 dan S.7 dari 30 ms menjadi 0 ms atau tanpa Filter

Gambar 16.3(b) Atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test  

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 16.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 16.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 16.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 16.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 16.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data Holding register yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1JHYJ6CXZWaZF-hVEH9HoCBpb3RAIIrXR/view?usp=sharing

Berikut ini video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Posisi di Outseal (simulasi Proteus) dengan LabVIEW 


============================================================

17. Interface Kontrol PID Posisi di Outseal dengan LabVIEW (simulasi Proteus) - Bagian 3

Langkah-langkahnya:

1. Buat rangkaian Outseal berikut ini. Rangkaian ini hampir sama seperti rangkaian Gambar 15, hanya bedanya, di sini tidak lagi menggunakan IC4013 dan Switch CW/CCW dipindah ke kaki S.7.

Gambar 17.1 Rangkaian kontrol PID Posisi dengan Outseal Nano di Proteus, tanpa IC 4013

Catatanada 9 kaki Outseal Nano yang digunakan, yaitu A.1 = Setpoint (SP), S.5 = Encoder A, S.6 = Encoder B, S.7 = pengatur arah cw/ccw, R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:
Gambar 17.2 Ladder Diagram Kontrol PID Posisi Outseal

Tabel Penempatan Variabel di Memori Integer (Holding Register)

3. Setelah Ladder Diagram selesai, klik Settings, atur di bagian Filter, yaitu di S.5, S.6 dan S.7, ubah nilainya dari 3 menjadi 0, dan di bagian Hardware, pilih Hardware = Nano V5, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".


Gambar 17.3(a) Atur Filter S.5, S.6 dan S.7 dari 30 ms menjadi 0 ms atau tanpa Filter

Gambar 17.3(b) Atur Hardware = Nano V5, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test  

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega328 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 17.4 Klik 2 kali komponen ATmega328, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 17.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 17.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 17.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 17.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data memori Integer (Holding Register) yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, program Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di atas di link ini: https://drive.google.com/file/d/1KMhYV6JahtazTt5dWC8JrpQCxrhKuvEp/view?usp=sharing

Berikut ini video Interface Kontrol PID Posisi dengan LabVIEW yang disimulasikan dengan Proteus:

Video Interface Kontrol PID Posisi di Outseal (simulasi Proteus) dengan LabVIEW - tanpa IC4013


============================================================

18. Interface Kontrol PID Posisi di Outseal Mega dengan LabVIEW (simulasi Proteus)

Langkah-langkahnya:

1. Buat rangkaian Outseal Mega berikut ini

Gambar 18.1 Rangkaian kontrol PID Posisi dengan Outseal Nano di Proteus, tanpa IC 4013

Catatanada 9 kaki Outseal Nano yang digunakan, yaitu A.1 = Setpoint (SP), S.5 = Encoder A, S.6 = Encoder B, S.7 = pengatur arah cw/ccw, R.6 = IN1 L298, R.7 = EN L298, dan R.8 = IN2 L298, serta kaki TX dan RX terhubung ke komputer.

2. Instal software Outseal Studio (link: download Outseal Studio). Buat Ladder Diagram di Outseal Studio seperti gambar berikut ini:
Gambar 18.2 Ladder Diagram Kontrol PID Posisi Outseal Mega

Tabel Penempatan Variabel di Memori Integer (Holding Register)

3. Setelah Ladder Diagram selesai, klik Settings, atur di bagian Filter, yaitu di S.8 dan S.12, ubah nilainya dari 3 menjadi 0, dan di bagian Hardware, pilih Hardware = Mega V3, Baudrate = 9600, Alamat Modbus = 1, kemudian tekan tombol Test. Pastikan pesan yang muncul "Tidak terdapat kesalahan".

Gambar 18.3(a) Atur Filter S.8 dan S.12 dari 30 ms menjadi 0 ms atau tanpa Filter

Gambar 18.3(b) Atur Hardware = Mega V3, Baudrate = 9600, alamat Modbus = 1, dan kompilasi program dengan menekan tombol Test  

4. Hasil kompilasi program Outseal Studio selalu berada di lokasi direktori yang sama, dengan nama "Hasil.hex", yaitu berada di C:\Users\.........\AppData\Local\Temp\Outseal\, di mana titik-titik berisi nama user di komputer. Isikan lokasi file hasil kompilasi ini di kolom Program File, di jendela Edit Component ATmega128 di Proteus. Atur juga CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz.

Gambar 18.4 Klik 2 kali komponen ATmega128, isi Program File = lokasi file hasil kompilasi, CLKDIV8 = Unprogrammed, CKSEL Fuses = Ext Clock, dan Clock Frequency = 16MHz

5. Berikutnya klik 2 kali COMPIM, isi kolom Physical Port dengan salah satu COM yang berpasangan. Dalam contoh di sini COM2 dan COM4 berpasangan, sehingga diisi COM2 (gunakan software pembuat pasangan COM, salah satunya HHD Virtual Serial Ports). Kemudian isi Baudrate = 9600, baik di Physical maupun di Virtual. 

Gambar 18.5 Klik 2 kali COMPIM, isi Physical Port = salah satu COM yang berpasangan, Physical dan Virtual Baudrate = 9600

6. Buat program berikut ini di LabVIEW. Program ini membutuhkan Add-On Toolkit DSC. Silahkan download Add-on Toolkit DSC ini dan install (link: download Toolkit DSC).

Gambar 18.6 Install DSC dan kemudian buat program LabVIEW di atas

7. Sebelum Proteus dan LabVIEW di jalankan, atur COM di COMPIM dengan Port COM di LabVIEW merupakan pasangan COM. Buka Device Manager untuk melihat pasangan COM.

Gambar 18.7 Pastikan COM di COMPIM dan Port COM di LabVIEW merupakan pasangan COM

8. Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser naik turun nilai Potensio di Proteus. dan perhatikan grafik di LabVIEW, dan juga nilai data (Holding register) di Tabel di kanan grafik. PV = Present Value (nilai sensor), SP = Setpoint, OP = Output.

Gambar 18.8 Jalankan Proteus dan LabVIEW, ubah nilai Setpoint dengan menggeser Potensio di Proteus, kemudian perhatian grafik dan nilai data Tabel di LabVIEW

Catatan: Ada 14 data memori Integer (Holding Register) yang ditampilkan di LabVIEW, yang berisi data I.1 - I.14, yang secara berturut-turut: PV, SP, Kp/100, Ki/100, Kd/100, Interval/10ms, Integral Error Limit, PID Out Max, PID Out Min, PID Output, 5xPID Output, Error, Absolut PID Output, Duty Cycle (ppt).

Unduh file Proteus, Ladder Diagram Outseal Studio dan program LabVIEW yang diperlukan di link ini: https://drive.google.com/file/d/1ItMNIfumEgTh1nCYtYHHJOcKd2psrloO/view?usp=sharing

Berikut ini video Interface Kontrol PID Posisi Outseal Mega dengan LabVIEW yang disimulasikan dengan Proteus:
Gambar 18.8 Rangkaian kontrol PID Posisi dengan Outseal Mega di Proteus, tanpa IC 4013




Tidak ada komentar:

Posting Komentar