ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

สวัสดีครับสอบถามการเชื่อมต่อระหว่าง Node ์

Nattapon

รบกวนสอบถามข้อมูลหน่อยครับ

เนื่องจากตอนนี้ผมกำลัง ทำการติดต่อสื่อสารระหว่าง NodeMCU และ PLC FX3U ผ่าน Modbus RTU Protocal โดยใช้อุปกรณ์แปลงสัญญาณ TTL to RS485 แต่ติดปัญหาที่ไม่สามารถเชื่อมต่อกันได้ (ไฟแสดงสถานะการเชื่อมต่อของ TTL to RS485 ไม่แสดง (ไฟ RX TX ที่ตัวอุปกรณ์ TTL to RS485))  พอจะทราบไหมครับว่าผมจะต้องตั้งค่าหรือแก้ไขโค้ดส่วนใดของ NodeMCU เพิ่มเติมครับ

รายละเอียดอุปกรณ์

- NodeMCU V3 ESP8266

- TTL to RS485 : http://wow.in.th/vbUu

โดยกำหนดให้การเชื่อมต่อมีดังนี้

 - อัตราการส่งผ่านข้อมูลอยู่ที่ 9600 

 - กำหนดให้ NodeMCU เป็น Master 

 - กำหนดให้ PLC FX3U เป็น Slave  *** โค้ดที่ตัว PLC ไม่มีปัญหา

*ข้อมูลการเชื่อมต่อ NodeMCU 

- เชื่อมต่อ NodeMCU เข้ากับ TTL to RS485 โดยขา D7 ต่อกับ TX และ D8 ต่อกับ TX ของ TTL to RS485

 

*** รบกวนช่วยเช็คโค้ดให้หน่อยได้ไหมครับว่าผมมีใดผิดหรือไม่ ถ้าหากโค้ดถูกแล้วผมจะต้องตั้งค่าส่วนใดเพิ่มเติมไหมครับก่อนที่จะอ

 

---------------------------------------------------------------------------------------------------------

Code in  NodeMCU : 

#include <ModbusMaster232.h> 

#include <SoftwareSerial.h>

// Instantiate ModbusMaster object as slave ID 1

 

ModbusMaster232 node(1);

 

 

void setup()

{

  Serial.begin(9600);

  delay(100);  

  node.begin(9600);  // Modbus RTU

  delay(100);

  Serial.println("Connected "); 

  Serial.println("Modbus RTU Master Online");

}

 

void loop()

{

 

///////// Holding Register [0]  A [9]   = 10 Holding Registers Escritura

///////// Holding Register [0] A [9] = 10 Holding Registers Writing

 

int Mdelay = 0; 

node.readHoldingRegisters(0, 1); 

Serial.print("[0] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(1, 1); 

Serial.print(" [1] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(2, 1); 

Serial.print(" [2] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(3, 1); 

Serial.print(" [3] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

 

node.readHoldingRegisters(4, 1); 

Serial.print(" [4] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(5, 1); 

Serial.print(" [5] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(6, 1); 

Serial.print(" [6] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(7, 1); 

Serial.print(" [7] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(8, 1); 

Serial.print(" [8] ");

Serial.print(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

node.readHoldingRegisters(9, 1); 

Serial.print(" [9] ");

Serial.println(node.getResponseBuffer(0));

node.clearResponseBuffer();

delay(Mdelay);

 

///////// Holding Register [10]  A [19]  =  10 Holding  Registers Lectura

 

/////     Holding Register [10] A [19]   =  10 Holding Registers Reading  

 

 

 

  node.writeSingleRegister(10, random(1, 10 )); 

  node.writeSingleRegister(11, random(1, 100 )); 

  node.writeSingleRegister(12, random(1, 10 )); 

  node.writeSingleRegister(13, random(1, 10 )); 

  node.writeSingleRegister(14, random(1, 10 )); 

  node.writeSingleRegister(15, random(1, 10 )); 

  node.writeSingleRegister(16, random(1, 10 )); 

  node.writeSingleRegister(17, random(1, 1000 )); 

  node.writeSingleRegister(18, random(1, 10 )); 

  node.writeSingleRegister(19, random(1, 1000 ));  

}

 

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน

ต้องขออภัย ที่ร้านยังไม่มีข้อมูล support สำหรับ PLC FX3U  ครับ

QUOTE 
ความคิดเห็นที่ #2
Nattapon

ตอนนี้ใช้งานได้แล้วครับ ขอบคุณมากครับ

 

QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน

ยินดีด้วยครับ : )

QUOTE 
ความคิดเห็นที่ #4
Tirawat Suksamosorn

ทำอย่างไรหรือครับไม่ทราบว่ามีตัวอย่างการต่อวงจรมั้ยครับ ผมก็ติดปัญหาเหมือนกันมา 1 เดือนแล้วยังแก้ไม่ได้เลยครับ 

แสดงความคิดเห็นที่ 1-4 จากทั้งหมด 4 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม