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
1 Answer 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.
-
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– Jacob Rodda2020年02月27日 04:47:25 +00:00Commented Feb 27, 2020 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– Spannerz2020年02月27日 05:01:35 +00:00Commented Feb 27, 2020 at 5:01
-
I'll be back tomorrow. Cheers.Spannerz– Spannerz2020年02月27日 05:03:37 +00:00Commented Feb 27, 2020 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– Jacob Rodda2020年02月27日 05:18:00 +00:00Commented Feb 27, 2020 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 backJacob Rodda– Jacob Rodda2020年02月27日 22:39:09 +00:00Commented Feb 27, 2020 at 22:39