Go Down

Topic: Arduino mega PLC ( arduino_plc ) (Read 2475 times) previous topic - next topic

el-gg

Hello

I busy to develop a micro-plc base on arduino mega 1280, with 2 serial prompts (usb and com1).

I want to know if some one have developed a hardware base on arduino mega + ENC28J60 Ethernet
and maybe some open transistor for output.

In short:

you put the label you want to use in your plc program in arduino_plc.

// #define your_label the_pin_name

#define switch1  i1
#define switch2  i2
#define light  o3

You modify the timer in the def_timer

//  Set the timer value use in your plc program  in second.

#define temp1   11  //sec
#define temp2   12  //sec
#define temp3   13  //sec


And you write your logic equation in plc :
// Write your logic equation here (and more if you can).
light=switch1 or switch2;   
ti2=m2;
   ti3=m2;

You compile and put in arduino mega, the you have a plc, with serial interface to
See input, output, timer …..
    strcat( reply, "You can type :\r\n\r\n" );
    strcat( reply,  "  di  Display input\r\n");
    strcat( reply,  "  do  Display output\r\n");
    strcat( reply,  "  dm  Display memory\r\n");
    strcat( reply,  "  da  Display analog value\r\n");
    strcat( reply,  "  dt  Display timer\r\n\r\n");
    strcat( reply,  "  sm x  Set the memory x\r\n");
    strcat( reply,  "  rm x  Reset the memory x\r\n\r\n");
    strcat( reply,  "  dl  Display the loop done by sec\r\n\r\n");

Thanks,
GG

TonyD

I did a small and simple PLC design for the Arduino Uno last year. You can find the schematic here

http://zuzebox.wordpress.com/2010/06/27/arduino-plc-v0-20/

I believe it was rugged circuits that had something like that already built. More of an Arduino-like board with isolated outputs and inputs, etc...

Look it up on his profile.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

el-gg

Ok, thanks,

I will make a backplane where i can plug the arduinomega, the ethernet board and maybe also a sd fo log,

Just for fun, i put the screenshot of the serial output of my arduino plc program.
You need to use putty in serial usb or com1, with the terminal config option for keyboard
Backspace key = control-h, then you can come back and modify you serial command.
the usbcom and com can be use at the same time ( 2 input buffer )

Arduino PLC

>
>help
You can type :

  di  Display input
  do  Display output
  dm  Display memory
  da  Display analog value
  dt  Display timer

  sm x  Set the memory x
  rm x  Reset the memory x

  dl  Display the loop done by sec


>di
Input
  i8  to i1  : 00000000
  i16 to i9  : 00000000
  i24 to i17 : 00000000
  i32 to i25 : 00000000

>do
Output
  O8  to O1 : 00000010
  O16 to 09 : 00000000
>dm
Memory
  M8  to M1  : 00000000
  M16 to M9  : 00000000
  M24 to M17 : 00000000
  M32 to M25 : 00000000
  M40 to M33 : 00000000
  M48 to M41 : 00000000
  M56 to M49 : 00000000
  M64 to M57 : 00000000
  M72 to M65 : 00000000
  M80 to M73 : 00000000
  M88 to M81 : 00000000
  M96 to M89 : 00000000
M104 to M97 : 00000000
M112 to M105: 00000000
M120 to M113: 00000000
M128 to M121: 00000000
>
>
>help
You can type :

  di  Display input
  do  Display output
  dm  Display memory
  da  Display analog value
  dt  Display timer

  sm x  Set the memory x
  rm x  Reset the memory x

  dl  Display the loop done by sec


>da
Analog value
  Ad(0) : 101
  Ad(1) : 102
  Ad(2) : 102
  Ad(3) : 103
  Ad(4) : 102
  Ad(5) : 103
  Ad(6) : 105
  Ad(7) : 104
  Ad(8) : 102
  Ad(9) : 102
  Ad(10) : 101
  Ad(11) : 102
  Ad(12) : 102
  Ad(13) : 101
  Ad(14) : 101
  Ad(15) : 99
>dt
Input
  ti8 to ti1  : 00000000
  ti16 to ti9 : 00000000
Output
  t8 to t1  : 00000000
  t16 to t9 : 00000000
Timer value
  T1 : 0
  T2 : 0
  T3 : 0
  T4 : 0
  T5 : 0
  T6 : 0
  T7 : 0
  T8 : 0
  T9 : 0
  T10 : 0
  T11 : 0
  T12 : 0
  T13 : 0
  T14 : 0
  T15 : 0
  T16 : 0
>help
You can type :

  di  Display input
  do  Display output
  dm  Display memory
  da  Display analog value
  dt  Display timer

  sm x  Set the memory x
  rm x  Reset the memory x

  dl  Display the loop done by sec


>dl
Loop by sec : 2006

>dl
Loop by sec : 2005

>dm
Memory
  M8  to M1  : 00000000
  M16 to M9  : 00000000
  M24 to M17 : 00000000
  M32 to M25 : 00000000
  M40 to M33 : 00000000
  M48 to M41 : 00000000
  M56 to M49 : 00000000
  M64 to M57 : 00000000
  M72 to M65 : 00000000
  M80 to M73 : 00000000
  M88 to M81 : 00000000
  M96 to M89 : 00000000
M104 to M97 : 00000000
M112 to M105: 00000000
M120 to M113: 00000000
M128 to M121: 00000000
>sm 1
Set memory 1
>dm
Memory
  M8  to M1  : 00000001
  M16 to M9  : 00000000
  M24 to M17 : 00000000
  M32 to M25 : 00000000
  M40 to M33 : 00000000
  M48 to M41 : 00000000
  M56 to M49 : 00000000
  M64 to M57 : 00000000
  M72 to M65 : 00000000
  M80 to M73 : 00000000
  M88 to M81 : 00000000
  M96 to M89 : 00000000
M104 to M97 : 00000000
M112 to M105: 00000000
M120 to M113: 00000000
M128 to M121: 00000000
>rm 1
Reset memory 1
>dm
Memory
  M8  to M1  : 00000000
  M16 to M9  : 00000000
  M24 to M17 : 00000000
  M32 to M25 : 00000000
  M40 to M33 : 00000000
  M48 to M41 : 00000000
  M56 to M49 : 00000000
  M64 to M57 : 00000000
  M72 to M65 : 00000000
  M80 to M73 : 00000000
  M88 to M81 : 00000000
  M96 to M89 : 00000000
M104 to M97 : 00000000
M112 to M105: 00000000
M120 to M113: 00000000
M128 to M121: 00000000
>

I design my model: https://github.com/willianpaixao/VIKI/tree/unstable/src/cad/relay-card_direct
:)

Go Up