Browsed by
Tag: digital

Write Digital Outputs Ardbox/MDuino

Write Digital Outputs Ardbox/MDuino

Digital  Ouputs (0-24Vdc): Ardbox

  • Analog: Q0.0, Q0.1, Q0.2 (Digital); Q0.3, Q0.4, Q0.5, Q0.6, Q0.7, Q0.8, Q0.9 (configurable Digital)
  • Relay:  –

M-Duino

  • M-Duino 21: Q0.0, Q0.1, Q0.2, Q0.3, Q0.4 (Digital); Q0.5, Q0.6  Q0.7  (configurable Digital).
  • M-Duino 42:  Q0.0, Q0.1, Q0.2, Q0.3, Q0.4, Q1.0, Q1.1, Q1.2, Q1.3, Q1.4 (Digital); Q0.5, Q0.6  Q0.7, Q1.5, Q1.6  Q1.7 (configurable Digital).
  • M-Duino 58: Q0.0, Q0.1, Q0.2, Q0.3, Q0.4, Q1.0, Q1.1, Q1.2, Q1.3, Q1.4, Q2.0, Q2.1, Q2.2, Q2.3, Q2.4(NC) (Digital); Q0.5, Q0.6  Q0.7, Q1.5, Q1.6  Q1.7, Q2.5, Q2.6  Q2.7 (NC) (configurable Digital).
  • M-Duino 19R: Q0.0, Q0.1, Q0.2 (configurable Digital).
  • M-Duino 38R: Q0.0, Q0.1, Q0.2, Q1.0, Q1.1, Q1.2 (configurable Digital).
  • M-Duino 57R: Q0.0, Q0.1, Q0.2, Q1.0, Q1.1, Q1.2, Q2.0 (NC), Q2.1, Q2.2 (configurable Digital).

In this post we are going to learn how to define the state of the digital outputs. In this example digital output Q0.0 (Ardbox Analog) is set to HIGH state and after some time again to LOW state. When  Q0.0 is HIGH the Q0.0 PLC  connection will  provide 24Vdc, conversly when Q0.0 is set to LOW Q0.0 PLC connection will provide 0V.   This code could be used to make a LED blink.  The same code could be reproduced for any other digital output.

int Q00 = 13;

void setup() {

pinMode(Q00, OUTPUT);
}

void loop() {

digitalWrite(Q00,HIGH); // output Q00 set to HIGH state (on).
delay(500);             // wait 500 ms
digitalWrite(Q00,LOW);  // output Q00 set to LOW state (off).
delay(500);             // wait 500ms
}

The digital outputs pinout can be checked on the User Guides for each PLC. Otherwise,  Arduino IDE start files contain all I/O already declared and with the suitable pinMode defined. To reproduce the same code for the other outputs the pin number should be replaced by the corresponding Arduino pin matching the new Output. i.e. (Ardbox Analog):

int Q01 = 11;   
void setup(){ 

pinMode(Q01, OUTPUT);   
}
Read Digital Inputs Ardbox/MDuino

Read Digital Inputs Ardbox/MDuino

Digital  Inputs (0-24Vdc):

Ardbox

  • Analog: I0.0 (Digital); I0.1, I0.2, I0.3, I0.4, I0.5, I0.6, I0.7, I0.8, I0.9 (configurable Digital).
  • Relay:  I0.0, I0.1, I0.2, I0.3, I0.4 (Digital); I0.5, I0.6, I0.7, I0.8, I0.9 (configurable Digital).

M-Duino

  • M-Duino 21: I0.0, I0.1, I0.2, I0.3, I0.4, I0.5, I0.6 (Digital); I0.7, I0.8, I0.9, I0.10, I0.11, I0.12 (configurable Digital).
  • M-Duino 42:  I0.0, I0.1, I0.2, I0.3, I0.4, I0.5, I0.6, I1.0, I1.1, I1.2, I1.3, I1.4, I1.5, I1.6 (Digital); I0.7, I0.8, I0.9, I0.10, I0.11, I0.12, I1.7, I1.8, I1.9, I1.10, I1.11, I1.12  (configurable Digital).
  • M-Duino 58: I0.0, I0.1, I0.2, I0.3, I0.4, I0.5, I0.6, I1.0, I1.1, I1.2, I1.3, I1.4, I1.5, I1.6, I2.0, I121, I2.2, I2.3, I12.4 (NC), I2.5, I2.6  (Digital); I0.7, I0.8, I0.9, I0.10, I0.11, I0.12, I1.7, I1.8, I1.9, I1.10, I1.11, I1.12, I2.7, I2.8, I2.9, I2.10, I2.11 (NC), I2.12 (NC)  (configurable Digital).
  • M-Duino 19R: I0.0, I0.1 (Digital); I0.2, I0.3, I0.4, I0.5 (configurable Digital).
  • M-Duino 38R: I0.0, I0.1 , I1.0, I1.1 (Digital); I0.2, I0.3, I0.4, I0.5 , I1.2, I1.3, I1.4, I1.5 (configurable Digital).
  • M-Duino 57R: I0.0, I0.1 , I1.0, I1.1, I2.0, I2.1 (Digital); I0.2, I0.3, I0.4, I0.5 , I1.2, I1.3, I1.4, I1.5, I2.2, I2.3, I2.4, I2.5 (configurable Digital).

In this post we are going to learn how to read digital inputs. The example shows how to obtain the  value for the digital input I0.0 (Ardbox Analog)  and print it  on the serial monitor every 2 seconds.

int I00 = 2;
int value_I00;
void setup() {

  pinMode(I00, INPUT);
  
  Serial.begin(9600); 	// Set up serial communication. It will allow to monitor the analog input value.
}

void loop() {

  value_I01 = digitalRead(I00);
  Serial.println(value_I00);   //print value on serial Monitor
  delay(2000); //wait 2 seconds
}

Digital inpus operate at 0 or 24Vdc. The read value digitalRead() will be 0  for 0Vcd signal or 1 for ~ 24Vdc signal. In order to monitor the digital input values the Serial Monitor is used.  It can be appreciated that the read value is either 0 or 1, depending  on the attached sensor state. In the event of no sensor attached, the value will be constant to 0.

AB_Analogread_serial_monitor     AB_digread_serial_monitor

The digital outputs pinout can be checked on the User Guides for each PLC. Otherwise,  Arduino IDE start files contain all I/O already declared and with the suitable pinMode defined. To reproduce the same code for the other inputs the pin number should be replaced by the pin matching the new digital input . i.e. (for Ardbox Analog):

int I01 = 12;

void setup(){
pinMode(I01, INPUT);

}
How to write a digital output

How to write a digital output

You can write a Digital Output (0 or 24V) through:

...
int myDigital;
...
void setup() {
   pinMode (5,OUTPUT);
}

void loop() {
   digitalWrite(5, HIGH);
}

With this piece of code you’ll put a voltage to the output PLC pin corresponding to the internal “5” pin. In this case, we put 24Vdc to the output. If we want to put 0Vdc, we have to change the “HIGH” value to the “LOW” value.   Note: The example pin “5”, is only an example. You need to check in your PLC which pin to use for reading, writing, or reading and writing. Only if your PLC is able to work as a digital output, then, you can send this code into it.

How to read a digital Input

How to read a digital Input

You can read the data of a Digital Input through:

...
int myDigital;
...
void setup() {
   pinMode (5,INPUT);
}

void loop() {
   myDigital = digitalRead(5);
}

With this piece of code you’ll read the voltage of a PLC pin. As our digital input works between 0-24V, the read value (myDigital) will be a value: 0 or ~24V.
 
Note: The example pin “5”, is only an example. You need to check in your PLC which pin to use for reading, writing, or reading and writing. Only if your PLC is able to work as a digital input, then, you can send this code into it.