| View previous topic :: View next topic |
| Author |
Message |
simango1981 Junior 2

Joined: 13 Jul 2014 Posts: 25
|
Posted: 15/11/2016 10:10 Post subject: Write a single holding register to BE1-951 barler relay |
|
|
Hi guys,
I am okay but I am also have serious problem.
I am working with ML1400 communication with BE1-951 OPS (overcurrent protation system) relay via Modbus RTU.
I can getting the communication and I can read a lot holding register from the relay (data type: INT, SI, FP and ASC) using function 3 (4xxxxx) but I wont write any data into the relay using function 6 and 16 (4xxxxx).
I am ask for help because this is for my first project using Modbus protocol I never work with Modbus. |
|
| Back to top |
|
 |
karkalete Junior 2

Joined: 20 Nov 2016 Posts: 25
|
Posted: 21/11/2016 22:24 Post subject: Re: Write a single holding register to BE1-951 barler relay |
|
|
| simango1981 wrote: | Hi guys,
I am okay but I am also have serious problem.
I am working with ML1400 communication with BE1-951 OPS (overcurrent protation system) relay via Modbus RTU.
I can getting the communication and I can read a lot holding register from the relay (data type: INT, SI, FP and ASC) using function 3 (4xxxxx) but I wont write any data into the relay using function 6 and 16 (4xxxxx).
I am ask for help because this is for my first project using Modbus protocol I never work with Modbus. |
http://www.mesta-automation.com/modbus-configuration-example-for-an-allen-bradley-micrologix-1400/
http://www.mesta-automation.com/wp-content/uploads/2012/06/Modbus.zip
http://www.codeproject.com/Articles/16260/Modbus-TCP-class |
|
| Back to top |
|
 |
simango1981 Junior 2

Joined: 13 Jul 2014 Posts: 25
|
Posted: 02/12/2016 09:46 Post subject: Write a single holding register to BE1-951 barler relay |
|
|
Thanks for the link it help so much now I cane read any type of holding registers data function code 3; I can write a single register for setting the relay for example to change the 50P pickup and time.
I am looking how to close the atingere output for the relay via Modbus.
As any example : if I fabricate the small logic into the relay to close the output contact using virtual switch, I go to line command and write this instruction: ACCESS=951 to get global access.
>CS-43=1 to select the switch.
>CO-43=1 to operate the switch and close the output and is working.
I want to do the same via Modbus, I try to write into the address registers for this virtual switch I am able to select but when I try to operate it wont and I am getting the error message code 83-Illegal data value.
Can you assist please!!!
regards |
|
| Back to top |
|
 |
jumanji1 Junior

Joined: 02 Dec 2016 Posts: 1
|
Posted: 02/12/2016 11:49 Post subject: Re: Write a single holding register to BE1-951 barler relay |
|
|
| simango1981 wrote: | Thanks for the link it help so much now I cane read any type of holding registers data function code 3; I can write a single register for setting the relay for example to change the 50P pickup and time.
I am looking how to close the atingere output for the relay via Modbus.
As any example : if I confecționate the small logic into the relay to close the output contact using virtual switch, I go to line command and write this instruction: ACCESS=951 to get global access.
>CS-43=1 to select the switch.
>CO-43=1 to operate the switch and close the output and is working.
I want to do the same via Modbus, I try to write into the address registers for this virtual switch I am able to select but when I try to operate it wont and I am getting the error message code 83-Illegal data value.
Can you assist please!!!
regards |
What is your settings for MODBUS Communication?
| Code: | The serial communication protocol is defined with the SG-COM command shown below.
SG-COM Command
Purpose: Read/Set serial communications protocol
Syntax: SG-COM[#[={baud},A{addr},P{pglen},R{reply ack},X{XON ena}]]
Example: SG-COM0=9600 or SG-COM1=9600,A0,P24,R1,X1
Comments: Password Access Privilege G or Privilege S required to change settings
# = port number. (0 = Front, 1 = Rear 232, 2= Rear 485)
baud = baud rate (300/600/1200/2400/4800/9600/19K)
Ax = Address for polled operation where x = 0 (No polling) to 65534
Px = Page length (lines/pg) setting where x = 0 (No page mode) to 40
Rx = Reply acknowledgment level where x = 0 (disabled). 1 (enabled)
Xx = Xon/Xoff setting where X0 = handshake disabled, X1 = handshake enabled.
The following parameters pertain to relays using Modbus™ communication protocol at COM2:
MFx = ModbusTM extended precision format where x = 0 for floating point or 1 for triple
precision
MPx = ModbusTM parity where x = N (None), O (Odd) and E (Even).
MRx = ModbusTM remote delay time where x = 10(msec.) to 200(msec.).
MSx = ModbusTM stop bit where x = 1 for one stop bit or 2 for two stop bits.
If a non-zero address is programmed in the 'A' parameter, then the relay will ignore all commands that are
not preceded by its specific address. If an address of 0 is programmed, then the relay will respond with an
error message for any command preceded by an address.
If polling software sends a command preceded by an address of 0, then that command will be treated as
a global command. All relays will execute the command but no relay will respond to avoid bus contention |
If you have Modbus Manual for this relay what is the coil registers allocation?
See this guys from Basler made a lot of mistakes with their modbus protocol to this kind of relays... |
|
| Back to top |
|
 |
simango1981 Junior 2

Joined: 13 Jul 2014 Posts: 25
|
Posted: 05/12/2016 14:24 Post subject: Post subject: Re: Write a single holding register to BE1-951 |
|
|
Hi,
I could not use the command line to get the port setting but you can appreciate this using the software.
Like I said, I can read and write some register to the relay.
In this special case I can not operate OUT1 using Modbus, but I can select and operate using command line.
This image below show witch output I am working on as example.
The logical is: VO1=Virtual_Switch 43.
OUT1=VO1.
If I operate this virtual switch I cane close and trip this OUT1.
If I operate directed this OUT1 I can close and trip via command line.
The Modbus address register for this is:
40119- Select virtual switch 43
40120- Operate virtual switch 43
40141- Select Output 1
40142- Operate Output 1
40135- Select 101 virtual Breaker control switch
40136 -Operate 101 Virtual Breaker control switch
In my case I am focus principally why can I not write into 40120 to operate the virtual switch 43???
thanks |
|
| Back to top |
|
 |
valz Member 3


Joined: 26 Jul 2015 Posts: 771
|
Posted: 07/12/2016 20:49 Post subject: |
|
|
I do not follow from the start this post. But I saw something is wrong on your transmission setting for RS485 RTU.
The parity must me put to EVEN
Data must be requested in register pairs and must be even to request a floating point variable. If the “vars” is odd or the “Starting Address” falls in the middle of a floating point variable the product will return an error message. |
|
| Back to top |
|
 |
|