0

I am attempting to control a Folinn VFD (Manual: Manual) with an Arduino Uno via a MAX485 module such as this.

  • Pins for MAX485:
    • DI > D8
    • DE & RE > D10
    • RO > D11

VFD settings:

  • F00.01 set to 2
  • F00.06 set to 9
  • F13.00 set to 1
  • F13.01 set to 5
  • F13.02 set to 3

At this stage I am attempting a very simple code just to turn the VFD on:

/*

   ModBus RTU control VFD

   Address               : 01H  (is the address of the VFD)
   Function              : 06H  (write function code)
   Starting data address : 20H
                         : 00H  (2000H  is the address of control command)
   Data(2Byte)           : 00H
                         : 01H  (0001H is forward command)
   CRC CHK Low           : 43H
   CRC CHK High          : CAH

*/

#include <SoftwareSerial.h>

#define SSerialRX        11  //Serial Receive pin
#define SSerialTX        8  //Serial Transmit pin
#define SSerialTxControl 10   //RS485 Direction control
#define RS485Transmit    HIGH
#define RS485Receive     LOW
#define Pin13LED         13


// From manual vfd Forward command = 01H 06H 2000H 0001H 43CAH

byte request1[] = {0x01, 0x06, 0x20, 0x00, 0x00, 0x01, 0x43, 0xCA}; 

SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX
byte byteSend;

void setup()
{
  // Start the built-in serial port, probably to Serial Monitor
  Serial.begin(9600);
  Serial.println("SerialRemote");  // Can be ignored


  pinMode(Pin13LED, OUTPUT);
  pinMode(SSerialTxControl, OUTPUT);

  // digitalWrite(SSerialTxControl, RS485Receive);  // Init Transceiver

  RS485Serial.begin(9600);

}
void loop()
{
    digitalWrite(SSerialTxControl, RS485Transmit);
    RS485Serial.write(request1, sizeof(request1));

}

With the MAX485 connected to the correct ports (S+ and S-) on the VFD, this current setup receives no response is someone able to spot where I am going wrong? I have taken the values for CRC CHK Low & High from a different example, is this the issue?

Have also tried setting F00.01 to an unlisted '3' setting that I have seen pop up in other discussions but this made no difference. Any advice would be much appreciated, let me know if I can supply further details.

(I chose this method based on this example

| improve this question | | | | |
1

User on other site (https://forum.arduino.cc/index.php?topic=663365.0) Might have default run conditons on VFD set differently or by hardware.

Check the VFD is listening to the ModBus Comms. OK.

Check VFD is 'Ready to Run'. Hardwire e-stop or 'Active' inputs. F00.22 Check Binding source F00.05 Check Set min Hz F01.01 Check Set min Hz

Give drive MIN Hz So when received RUN signal has default speed to goto.

Are you doing a Hard Reset on the UNO every time you want to send the Modbus string? Code runs once, does not actively transmit.

| improve this answer | | | | |
  • Hi Spannerz, thanks for the suggestion I have set: - F00.01 Command source selection - 2:RS 485 communication control - F00.06 Frequency A command selection - 9:RS 485 Communication Is there another setting I need to look at to be sure it is listening to ModBus? – Jacob Rodda Feb 27 at 4:47
  • OK. F00.06 is the frequency setpoint. Sure you can send it a number of the speed you want to run at, but are you? Almost suggest setting to 1:Keypad value, retentive on power failure. RUN signal is different to SPEED setpoint. – Spannerz Feb 27 at 5:01
  • I'll be back tomorrow. Cheers. – Spannerz Feb 27 at 5:03
  • That makes a lot of sense. Will try setting the frequency via keypad and just sending the run command. Will give it a crack in the morning and let you know how it goes. – Jacob Rodda Feb 27 at 5:18
  • Hi Spannerz, thanks for the additional information. I have been hard resetting the UNO so I think the problem lies in one of the settings you have mentioned. Flat out this morning but will try adjusting these settings later today and report back – Jacob Rodda Feb 27 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.