Jump to content

Memory long help on vision 1040


Recommended Posts

Hello.

We are trying to read ML registers on our Vision 1040 PLC.

We are using ClearSCADA as our software to read the ML register and Modbus. There are data on the ML0-ML20 that we are trying to get,

but we can't seem to find the right address.

We've tried 45101, 45100 and 45102 for reading ML0.

We have googled and found nothing that works for us.

Is there anyone here who have any tips on what adress ML0 is on and how to read it?

Link to comment
Share on other sites

I am unfamilliar with the program you mention, but byasking for an ML you are asking for a 32 bit memory read. Is your master asking for/expecting a 32 bit response? Also the location for ML0 in an enhanced vision product is hexadecimal location 7000 or decimal location 28672. If you go into Visilogic and in the in program help files search for Modbus you will get a section for slave addressing to come up. All of the information you need is right there.

Thank You

Keith

Link to comment
Share on other sites

I am unfamilliar with the program you mention, but byasking for an ML you are asking for a 32 bit memory read. Is your master asking for/expecting a 32 bit response? Also the location for ML0 in an enhanced vision product is hexadecimal location 7000 or decimal location 28672. If you go into Visilogic and in the in program help files search for Modbus you will get a section for slave addressing to come up. All of the information you need is right there.

Hi, thanks for reply.

ClearScada is a Scada software we use to log the data from the PLC. We are working on a project to automatic report variables from a cleaning process as a PDF document.

The PLC has already been programmed by someone else, and all we got to work from is the adress list, and the logic (in visi-logic).

We have some important data in the ML registers that we need to read, but can't find the right registers to read from.

I have read about the enhanced vision and about the hexadecimal location, but can't get it right.

Our Scada software demands modbus adress, type of signal (DI, AI .etc) and data type (16-bit int signed, 16 bit int unsigned, 32 bit unsigned/signed and 32-bit float).

I have tried setting up Scada to expect 32-bit unsigned or 32-bit signed, and tried different adresses I found on the web.

Our main problem is our Scadasoftware won't take hex-adress, only dec. And when we try the decimal version (28672), it complain about out of bounds. Need to be between 0-9999 or 4-49999 etc.

I'm kind of new to Modbus, but when we read MI (40000-44096) and MB(0-9999) using decimal adress it works fine.

Thank you

Link to comment
Share on other sites

Well I downloaded a demo version of ClearSCADA and trying to figure anything out from that was like trying to read Chinese for me. I believe that the correct tactic to take here is to contact Schnieder and just ask the question of them. This can not be the first time in their programs history that a hex value has been needed to aquire a piece of data. For some programs you have to use a code starting point for example:

7X01 is how a KEP HMI screen would allow you to pull a 7000 series hexadecimal object 1. So you would assign the data a structure 7X and ask for location 1, but I was unable to find any usefull data in the ClearSCADA program's help files about structure and realistically I do not have the time to look any further. I imagine that there is something very much like this in the ClearSCADA program, but I could not find it.

Sorry

Keith

Link to comment
Share on other sites

  • MVP 2014

I have seen some SCADA packages that use the 5th digit from the right to try and set the function code. They assume there are no more than 10,000 addresses for each data type.

The following post covers the topic quite well: http://www.control.com/thread/1026238596

Hopefully the software supplier can help provide a way of dealing with this.

Another option may be to use the Visilogic Map Register Bytes function and copy the ML value to two consecutive MI values, then read the 2 MIs as a 32-bit value. Please note these values will look like nonsense when you look at the individual MIs, they must be read as a single 32-bit value.

Link to comment
Share on other sites

As other members wrote, In accordance to VisiLogic Help, "Communication FBs->MODBUS->Slave Addressing", for Enhanced Vision Series, ML registers address space starts at 0x7000=28672.

You need to add an offset 40001 to this address.

Finally, to read ML 0, address should be 40001+28672=68673.

Next ML address (ML 1) will be 68673+2=68675.

Does it works for you?

Link to comment
Share on other sites

Create a new "scanner" and have it point to the block of ML's you wish to access.

For the data address, use 28672. Set length to however many ML's you want, and then select Holding registers.

It is common that using a function call to the holding registers implies the 40001 offset, so you likely just need to give the sub-offset. Otherwise there is no point in selecting "holding registers" since the 40001 and up range is the holding registers by definition.

Now when you create your variable, that offset will be in reference to the block your scanner is reading.

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.