Technical FAQs

Ask a Question

Can a BMXNOM0200 module be changed programatically Master to Slave in a X80 EIO drop?

Title

 
Issue

 
Product Line
Applicable product lines.
 
Environment
Vendor, Product, Version
 
Cause
N/A
 
Resolution
To configure the BMXNOM0200 as a Modbus RS-485 RTU slave in an X80 drop, use these firmware versions or higher:
BMXCRA31210.3 SV ≥ V2.12
BMXNOM0200.4 SV ≥ V1.5

In X80 EIO drops, Modbus slave messages received by the BMXNOM0200.4 module are transferred tthrough the X80 EIO adapter module (BMXCRA31210.3 or BMECRA31210).
The BMXNOM0200.4 module is configured differently in an M580 X80 drop than Quantum RIO drop, and is compatible with M580 BME•58••40 CPUs.

For the BMXNOM0200.4 module:
Channel 0 supports RS-232 or RS-485.
Channel 1 supports only RS-485.

Declaring the BMXNOM0200 module as a BMXNOM0200.4 module in Unity Pro allows you to configure the module for: Modbus RTU slave on RS-485

NOTE:
Only Modbus RTU is supported as slave protocol.
Only RS-485 is supported when Modbus slave is selected


The READ_STS_MX function block is used to read the status words of an (e)X80 local rack or Ethernet RIO module, by performing an explicit exchange with the CPU memory.
These status words contain data on the operating mode of the module, and may be used to perform program-based diagnostics.

The WRITE_CMD_MX function block can be used to send a command to an (e)X80 local rack or Ethernet RIO module through the use of command words, by performing an explicit exchange.

To change the protocol used by a BMX NOM 0200 serial communication using the WRITE_CMD*(IODDT_VAR1) command.
This command can be used to switch between the following three protocols:
Modbus Slave
Modbus Master
Character Mode

You must create first an IODDT variable linked to the serial channel, then set to 1 the bit of word IODDT_VAR1.CONTROL (%MWr.m.c.24) that corresponds to the change of protocol desired:
NOTE: IODDT_VAR1 variable must be either a T_COM_MB_BMX or a T_COM_MB_BMX CONF EXT type.
TO_MODBUS_MASTER (Bit 12): Current protocol is changed to Modbus Master.
TO_MODBUS_SLAVE (Bit 13): Current protocol is changed to Modbus Slave.
TO_CHAR_MODE (Bit 14): Current protocol is changed to Character Mode.

Three protocol changes are used:
1. Transfer from Modbus Slave to Modbus Master:
The aim of Modbus Master configuration is to send information about an event to another PLC. When a change is made from Modbus Slave configuration to Modbus Master configuration, transmission, signal and physical line parameters remain the same. Only the values of the following parameters specific to Modbus Master configuration are changed:
The Delay Between Frames is set to its default value, which depends on transmission speed.
Answer delay is set to 3 s
Number of retries set to 0

2. Transfer from Modbus Slave/Master to Character Mode
Switching to Character Mode is used to send AT commands to a modem. When a change is made from Modbus configuration to Character Mode configuration, transmission, signal and physical line parameters remain the same. Only the message end detection parameter specific to Character Mode is set to stop on reception of the x0d ending character.

3. Transfer from Character Mode to Modbus Master and to Modbus Slave:
The aim of Character Mode configuration is to communicate with a private protocol (a modem, for instance). Once the exchange has finished, the user switches to the Modbus Master configuration (with the answer delay set to 3 s and the number of retries set to 0) in order to send information about an event to another PLC. Once the message has been sent, the user returns to the Modbus Slave configuration: the slave number is set to the value stored in the FLASH memory or to 248 if none.

NOTE: Be careful that two masters (on the same bus) do not send requests simultaneously otherwise the requests are lost and each report will have a bad result which could be 16#0100 (request could not be processed) or 16#ODFF (slave is not present).
Was this helpful?
What can we do to improve the information ?