Jump to content

V350-J-TR20 >>> Modbus communication with 2 VFDs

Recommended Posts

Hello Unitronics Team,

I am new to PLC. I have issue while writing more than one data on different drives.

Model no. :- V350-35-TR20
Visilogic 9.7.24
VFD :- ABB (ACS550 5.5HP and 3.5HP) Qty :- 2Nos. Slave ID 1 for Big HP drive and Slave ID 2 for Small HP drive.
Tried on Baud rate :- 9600 and 57600 only. rest all cant communicate.

Application :- To automatically increase the speed of both motors slowly and simultaneously after given time. 
for Big HP VFD >>>> Speed1 = Slow speed , Speed2 = Medium speed and Speed3 = High Speed.
for Small HP VFD >>>> Speed4 = Slow speed , Speed5 = Medium speed and Speed6 = High Speed.

When both the Drive Starts, 
Big and small HP VFD will take speed1 and speed4 respectively for say T0=30sec.
After T0=30sec Big and small HP VFD will take speed2 and speed5 resp. for again T1=30sec and 
After T1=30sec Big and small HP VFD will take speed3 and speed6 resp. and will continue to run till stop comand is given. 

Observation :- 
1) Both the VFDs communicated with PLC via RS485 MODBUS. 
2) When i manually increase or decrease the speed both VFDs work properly
3) As soon as simultaneous data is given, only one VFD gets the data and other one fetch the previously stored data.
4) I did increased Baud rate of all Modbus communicating devices. So it is writing much faster but the last value speed3 and speed6 in between this two speed there is a random delay.
5) At all these instant "Function in Progress" bit is high after writing one data on Big HP drive(Slave ID 1). 
So i think because of this "Function in Progress" bit PLC can't write other data on the Small HP drive(Slave ID 2). 
And the time taken for "Function in Progress" bit to turn off is random. It varies from 5 sec to 12 sec.

I can tolerate delay of 1sec between Slave ID 1 (Big HP) and Slave ID 2 (Small Drive). So is there any solution or trick to solve this issue?


Thanking you!!!

Link to comment
Share on other sites

Since you did not include your program for anyone to look at we can only guess on your behalf.  I sounds like you need to program in some "traffic control" into your application.  In creasing the communications speed isn't going to have any kind of consistent help if at all.  You need to write your communications lines to each VFD seperately.  All of us have different methods of achieving traffic control that I have seen written about here in the forums, but a simple to understand method is to perforn one modbus function code operation to one VFD and then at the end of that operation incrment an integer by one.  At beginning of """""""EVERY"""""" read and write you need to nake sure that only one modbus command is trying to execute at any one time.


So for this example I want to make 4 code 3 reads of integers (2 from each VFD) and also send two code 16 write commands you want all 6 to execute when it is ok to do so, but you have to know when is a good time.


Net 1: only execute when integer mentioned above is equal to 0, function in progress is false, read from VFD 1, increment integer to 1

Net 2: only execute if integer is equal to 1, function in progress is false, after done increment integer to 2

net 3: Integer =2 do operation increment to 3





for as many steps as you need to make then at the end make a net that resets the integer to zero automatically if the integer is ever greater than 5.  This will allow all 6 modbus operations to run as fast as they can, but keep all of them from stepping on the other 5 operations.


It is possible that you need to intentionally delay one function from the next (because if you execute multiple commands too quickly with no delay you can cause communications failures) but this will probably work given the ABB VFD s you are trying to work with.


I have attached a PDF of a 4 burner modbus communications section from an older program that works as I described above.  Like I said earlier there are a multitude of ways to end up at the same place and this is only one possible way.


Good Luck



4 device modbus VisiLogic Project.pdf

Link to comment
Share on other sites

Dear Walkerok,


Thank you for your prompt response.


"Function in Progress" bit is ON for 5 sec to 12 sec after every write. So because of this bit writing of other data is not possible on other drive.


To solve this problem. I added add-on ports (V100-17-RS4) Port2. Now i am controlling Small VFD on port1 and big vfd on port2.

Machine was working more precisely. Every time when i start the process 1st step and 3rd step both the frequency gets write into 2 VFDs correctly and parallely. But  in 2nd step there is delay between both drives of less than 4 second. So i think this 2nd step delay shouldn't exist. I am confused Why this problem is occuring? 


And repeatedly the random delay is occurring in 2nd step only. 1st and 3rd step is working properly. If traffic control is the issue, than it should occur in all the steps. Why it is occurring in 2nd step only?


Please find the attached program file..


Thanking you!!!!

Link to comment
Share on other sites

Because the function in progress bit is on for a unknown variable amount of time is the exact reason you need to do the traffic control like the illustration in my first response.  You have to have a way to accommodate completely unknown time lags when talking to multiple devices.  Looking at your code I would not expect it to actually work except maybe part of the time.  I know it looks cumbersome the way I illustrated it but it has the benefit of proven working on multiple live customer units in current operation.


Good Luck


Link to comment
Share on other sites

I would also suggest using a #6 "Preset Holding Register" function block instead of the #16 "Preset Holding Registers" function block as your vector length appears to be one.  This can cause issue with some slave devices.  You might have better luck if you lower your baud rate to mitigate any problems electrical noise (that VFDs are notorious for) might be causing, as well as making sure you are using shielded cable that is grounded on one end only.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...