Jump to content

Modbus addressing from a Scada system


Recommended Posts

Hi Everyone,

I've implemented Modbus communications with Unitronics Vision series, both serial and Ethernet.

I've been able to read and write MIs and MB successfully.

 

But I'm not able to access any other type of addresses.

Visilogic help shows a "slave adressing" table.

This table apparently indicates for example that in order to read SBs you should read coils starting at 3000 address

or in order to read OPLC discrete inputs you should read coils starting at 4000

Outputs->5000

Timer coils->6000

Counters->7000

MBs 3000-4095->8000

(similar story for registers different from MIs)

 

well, this simply doesn't work, reading addresses 3000 or 4000 does not return SBs or Inputs, also any attemp to read a coil address above 4095 will return an error.

 

Modbus offcourse supports 1xxxx addresses for inputs, but Unitronics OPLCS seem to support only 0xxxx (coils) and 4xxxx (registers).

 

There is offcourse the chance to "map" SBs or Inputs to MBs and then read them as MBs, but is not a clean way to do it, and you need to consume MBs just for mapping purposes.

 

I guess there should be a way to read inputs, since there is a "Read Input" function block in Visilogic Modbus Master.

 

So, please tell me I'm wrong and tell how can SBs and Inputs via Modbus from a Unitronics OPlc.

 

Thank You!

Joe

 

 

 

Link to comment
Share on other sites

Hi Joe,

What Vision model are you using?

Please note that the slave addressing is different for the Standard (V120, V230, V260, V280, V290, V530) and the Enhanced models (V130, V350, V560/570, V1040, V1210).

The values stated above are for the Standard models only, and that might explain why this implementation is not working for you.

 

If you still cannot implement Modbus communication, please feel free to send your application to support@unitronics.com.

Link to comment
Share on other sites

Hello Eyal,

Thank you for your response.

 

I'm using and enhanced controller V350.

The slave addressing table for enhanced controllers shows the following:

Coils (Read Coils Modbus Command)

0000h -> MB0

3000h-> XB

4000h-> O

5000h-> SB

6000h-> I

7000h-> T

8000h-> C

 

However, like i mentioned, the V350 only responds to the Modbus Read Coil command for MBs

and the highest address the controller responds is 4095 (decimal) without returning an error.

 

So, like I said, it is not possible to read via Modbus any discrete address besides MBs.

 

Could you please check with your teammates if anyone has tried this before?

Again, We are talking about reading V350 operand values (other than MBs and MIs) from any Modbus Master Software (Scada, OPC, etc.)

 

Thank You!

Joe

Link to comment
Share on other sites

Joe,

We have many project which successfully implemented Modbus communication, both RTU and TCP. As stated in the Slave Addressing page in Visilogic help file, the stated addresses should be referred as hexadecimal values, and not decimal.

The only reason that you were actually able to read MB's and MI's is because the first values (0-10) are identical bot in decimal and hexadecimal bases.

Try changing the base to hex and see if the issue persists (don't forget to check that the operand value corresponds to the hex format - for example ML40=7028h).

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...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.