Giỏ hàng
Danh mục sản phẩm

Lập Trình Arduino PLC Delta DVP-12SE modbus RTU

Đăng bởi Trần Văn Bùi ngày bình luận

Lập Trình Arduino PLC Delta DVP-12SE modbus RTU 
Hôm nay mình giới thiệu các bạn giao tiếp PLC delta với Arduino mega2560
Với Board mạch bên mình tự thiết kế 
Sơ đồ cơ bản như sau

Chân + PLC nối A,Chân - Nối B 

Chú ý nối Jumper để nhận cổng UART-RS485 

Với Chương trình PLC 

Các bạn vào biểu tượng khoanh tròn để cài đặt

Cài đặt như sau 

VD cơ bản để cài đặt thông số Modbus 

Chương trình cơ bản như sau :

Khi X0 có tín hiệu đầu vào thì LOAD giá trị K1234 vào D0

Khi X2 có tín hiệu Bắt đầu truyền xuống PLC nạp vào ô nhớ 0

Chương trình Arduino như sau :


#include <ModbusRtu.h>
#include <EEPROM.h>
int address = 10;
byte idmb;

Modbus slave(1, 2, 0);
uint16_t au16data[50]; 
const int sizePwm = 7;
const int sizeAnalog =14;
const int PWMpin[]={4,44,45,46,12,11,10};
const int Analogpin[]={A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13}; //14 input analog
int16_t AnalogValue[14];
int i=0;
int pwmtemp=0;
int tl=0;
int state;
byte idmbtemp;
void setup() {
  Serial.begin(9600);
   Serial2.begin(9600); //Abre la comunicación como esclavo
   idmb = EEPROM.read(address);
   if(idmb <1)idmb=1;
   if(idmb>125)idmb=125;
 //  slave.setID(idmb);
   for(i=0; i<sizeAnalog;i++) pinMode(Analogpin[i],INPUT);
   for(i=0; i<sizePwm;i++)pinMode(PWMpin[i],OUTPUT);
   idmbtemp = au16data[29];
}


void loop() {
  state = slave.poll( au16data,50 );
 Serial.println(au16data[0]);
/*
  
  if (millis()>tl){
    
      tl=50;
      for(i=0; i<sizeAnalog;i++)AnalogValue[i]=analogRead(Analogpin[i]);
      memcpy(au16data,AnalogValue,sizeAnalog*2);    
      for(i=0; i<sizePwm;i++)
        {
          pwmtemp = map(au16data[30+i], 0, 100, 0, 255)  ;
          analogWrite(PWMpin[i], pwmtemp);
        }
        if(au16data[29]!=idmbtemp){
              idmbtemp = au16data[29];
              if(au16data[29] <1)idmbtemp=1;
              if(au16data[29] >125)idmbtemp=125;
              au16data[29]=idmbtemp;
              slave.setID(idmbtemp);
              EEPROM.write(address,idmbtemp);
          }
  }

  */
}

Khi nhận giá trị K1234 in ra màn hình COM port Serial 0

Như vậy các bạn đã kết nối thành công với Arduino PLC delta

Cảm ơn các bạn đã ghé thăm shop .

 


Cũ hơn Mới hơn