Jump to content

Modbus To Control Speed Of Vfb, Pls Help


rusman

Recommended Posts

I have to control Emotron VFB form my HMI. I am investigating the detail of its MODBUS implementation. I found to control speed seems it use the following MODBUS message:

 

01 06 26 FB A0 40 8A 83

 

the problem is registed number 26 FB is not defined in the serial protocol manual and value of A0 40 is seems not related to the value i set around/less than 50 rpm. I believe the bit A15 should be = 0 (1 rpm = 1 LSB).

 

The A0 40 actually vary to such as: A0 41, A0 2A, 9C 48, C2 EE

 

at present i test using emosoft and observe the protocol. the problem is this software crash on WIN XP and it does not have access to rpm data for my HMI.

 

I am desperate, Pls help me to interpret this message. My app is simply setting RPM value and read its RPM/some alarm statuses. monitored via its existing serial MODBUS.

Link to comment
Share on other sites

Hello rusman

 

You set the speed using modbus logical number 41001 which is a function 3, address 1000 and 2000 hex is 100% speed.

 

So to read the speed, use function 3

01 = slave address

03 = function 3

03 = Upper byte of address 1000d

E8 = Lower byte of address 1000d

00 = Upper byte of number of registers to read

01 = Lower byte of number of registers to read

04 = Upper byte of CRC

7A = Lower byte of CRC

 

This will return the speed:

01 = slave address

03 = function 3

02 = byte count

XX = upper byte of speed

xx = lower byte of speed

CC = upper byte of CRC

CC = lower byte of CRC

 

 

To set the speed, you can use function 6

01 = slave address

06 = function 6

03 = Upper byte of address 1000d

E8 = lower byte of address 1000d

03 = upper byt of 10% speed reference

33 = lower byte of 10% speed reference

49 = upper byte of crc

5f = lower byte of crc

 

This will set the speed to 10%.

 

I do not have a VFX set up here to verify the above, these are just paper calcs, but this is how I do it.

 

The string that you have quoted is not correct as the CRC does not match!!

 

Best regards,

Link to comment
Share on other sites

Dear Mark,

 

I agree with you and that is what i expect and conform to the serial manual. But i could not believe my own eyes as these are what i get using ms portmon from emosoft:

 

writing the speed the command is: Length 8: 01 06 26 FB 9C 47 DA 41

 

response: Length 8: 01 06 26 FB 9C 47 DA 41

 

other writing command are:

 

01 06 26 FB A0 42 0B 42

01 06 26 FB A0 43 CA 82

01 06 26 FB C2 EE 22 5F

01 06 26 FB 9C 56 1A 4D

01 06 26 FB 00 0A 73 74

 

reading (speed?) command is: 01 03 26 FC 00 0C 8E B7

response is: 01 03 18 00 00 00 00 00 00 00 00 00 0A 00

00 00 01 00 00 00 01 00 00 00 03 00 00 02 CF

 

 

other reading :01 03 26 F2 00 02 6E B0

response : 01 03 04 00 00 00 8A 7B 94

 

other polling reading command are using 01 04 and these i understand since they conform to the manual.

 

so it always use register 26 FB (=9979 dec) to write and register 26 FC(=9980 dec) and 26 F2 to read. these are not in the manual. and I still dont understand the value to write . i have no clue of its pattern and relate them to % of rpm ( i test up to 50 rpm of 600 rpm max).

 

Pls help, or should i try using the register number as you mentioned and written in the manual?

 

thanks in advance

 

could it be because mine is VFB instead of VFX ?

 

Link to comment
Share on other sites

Hello rusman

 

There are often undocumented registers available on equipment where the manufacturers can communicate with the equipment for reasons other than standard control.

Somtimes these additional registers are provided for the protocol converters, i.e. fieldbus systems that require a number of parameters in one location.

It is possible that you are seeing the use of such a parameter and as it is un documented, I would not attempt to use it. It quite possibly has other functions attached and using it could cause problems.

 

Use the 1000 register as documented, it does work provided that you use it correctly.

 

The VFB and VFX are electronically the same apart from rating. The same control pcb iand firmware is used in both so there is no problem there.

 

Best regards,

Link to comment
Share on other sites

Hi mark,

 

Great, the speed read and write work from register 1000, i can control it properly, despite that the manual say it is "comm ref", mean i will never know this, only after you tell me.

 

But i still have two problems, i fail to Reset/Stop, and to Run.

 

 

form emosoft protocol, i guess i have to use:

 

To start write: 01 0F 00 01 00 03 01 03 F2 96

 

 

To stop write: 01 0F 00 00 00 02 01 01 1F 57

 

but nothing happen, and i have to start and stop using emosoft. Perhaps i made wrong implementation.

 

May I have your comment on these problems?

 

TIA

 

 

Link to comment
Share on other sites

Hello rusman

 

In order to start the drive, you need to have two bits (coils) set.

 

You must have the coil at modbus 1 (Run/Stop) set and either the coil at Modbus 2 or modbus 3 set.

i.e. to run forward, set coil 1 and coil 2. to run reverse, set coil 1 and coil 3.

 

To reset, set coil 0.

 

To access the coils, use modbus function 5. Function 1 is to read a coil status.

To set a coil, you write FF 00 to that location. To clear a coil, you write 00 00 to that location.

 

i.e. 01 05 00 01 FF 00 DD FA sets coil 1. (RUN)

 

Make sense now??

 

Best regards,

Link to comment
Share on other sites

Hello rusman

 

Just wondering how you are getting on with this application?

 

Best regards,

Link to comment
Share on other sites

Sorry for the delay, i was in net-less site.

 

I had a great time, after i learn from your post and existing protocol, i have to do the following sequence:

 

INIT : 01 0F 00 00 00 01 01 00

START: 01 0F 00 00 00 01 01 ?? (i forgot this)

RUN : 01 0F 00 01 00 03 01 03 F2 96

 

and

RESET/STOP: 01 0F 00 00 00 02 01 01 1F 57

 

i can completely control the 125KW fan. and if dont do the above i have motorless control that i can use as simulation/training mode, since the speed control protocol provide proper response.

 

and thanks alot, without you and this forum, i will never complete this in allocated time.

 

 

Link to comment
Share on other sites

Hello rusman

 

Thank you for the feedback, I am pleased that all is now functioning as it should.

 

Best regards,

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...