ProSoft Technology, Inc.
  Your Location: ProSoft Tested > Solutions > PLC Manufacturers > Siemens 353 loop / iPAC controller Printable Page
 

Search


Modbus TCP/IP communication between MVI56-MNET and Siemens 353 loop / iPAC controller

Problem Solution Overview

Verify Modbus TCP/IP communication between ProSoft MVI56-MNET and Siemens 353/Procidia iPAC controllers on 10/100BASE-T network

Solution Brief

Our testing generated the following results:

  • We were able to successfully communicate over Modbus TCP/IP with the device. (See below for configuration parameters used during the testing)
  • The product supported Modbus functions 1- 6, and 16. The device tested supported integer, IEEE floating point and string read and write commands.
  • Procedure used the sample MVI56-MNET ladder logic using RSLogix Version 8.02. Some minor changes to the ladder are given below for floating point and string conversion.
  • The purpose of our testing is to assure a level of compatibility in the communications between the two products. Through this testing, we attempt to identify problem areas that may arise when implementing the interface in the field.

EQUIPMENT

ProSoft MVI56-MNET communication module Procidia iPAC controller with Ethernet communication board (pre-configured)

CONFIGURATION:

The product testing was performed with the following settings used for both devices.

ETHERNET Node Configuration

  • IP Address 192.168.0.10
  • Subnet Mask 255.255.255.0
  • Gateway Address 192.168.0.1

MODBUS Node Connfiguration

  • Slave Address 1
  • Port 502

The following command list shows commands, which were used to test the communications :
MNET configuration file used the following Client 0 Commands for the above tests:
(a copy of this configuration file can be obtained from reference section below)

Our test command list performs the following functions.

  1. Read Coil Commands (Function Code 1 and 2)
    - Function code: 1 or 2
    - Starting coil address: 295 (zero-based)
    - Number of coils 1
    - Test setup
    - Procedure: Push A/M key to toggle state
    - Expected Observation:Red LED: Bit = 0 & Green LED: Bit = 1
  2. Write Coil Command (Function Code 5)
    - Function code 5
    - Starting coil address 295 (zero-based)
    - Number of coils 1
    - Test setup:
    - Procedure: Write 0 and 1 to coil
    - Expected Observation: Bit = 0: A/M Red LED (manual mode) Bit = 1: A/M Green LED (auto mode)
  3. Write Multiple Coils Command (Function code 15)
    - Moore 353 does not support Function code 15
  4. Read Register Commands (Function code 3 and 4)
    - Function code: 3 or 4
    - Starting register address: 202 (zero-based)
    - Number of registers: 1
    - Test setup:
    - A/M manual mode (Red LED)
    - V variable displayed (press D key to toggle between P, S and D)
    - Procedure: Turn pulser knob to change value and read register
    - Expected Observation: V = 0: Integer = 128 (hex 0080) V = 100: Integer = 3968 (hex 0F80)
  5. Write Single Register Command (Function code 6)
    - Function code: 6
    - Starting register address: 202 (zero-based)
    - Number of registers: 1
    - Test setup: A/M manual mode (Red LED)
    - V variable displayed
    - Procedure: Write integer to register (0 to 4096)
    - Expected Observation:
    - Integer = 128 (hex 0080): V = 0.0
    - Integer = 2048 (hex 0800): V = 50.0
    - Integer = 3968 (hex 0F80): V = 100.0
  6. Write Multiple Registers Command (Function code 16)
    - Same as "Write Floating Point Data Type" test 10
  7. Read Integer Data Type
    - Function code: 3 or 4
    - Starting register address: 202 (zero-based)
    - Number of registers: 1
    - Test setup: A/M manual mode (Red LED)
    - V variable displayed
    - ProSoft Scaling: Int 128 = 0 and Int 3968 = 100
    - Procedure: Turn pulser knob to change value and read register
    - Expected Observation: Scaled value = V value
  8. Write Integer Data Type
    - Function code: 6
    - Starting register address: 202 (zero-based)
    - Number of registers: 1
    - Test setup:
    -- A/M manual mode (Red LED)
    -- V variable displayed
    - ProSoft Scaling: Int 128 = 0 and Int 3968 = 100
    - Procedure: Write value (-3.3 to +103.3)
    - Expected Observation: V value = Write value
  9. Read Floating Point IEEE Data Type
    - Function code: 3 or 4
    - Starting register address: 1954 (zero-based)
    - Number of registers: 2
    - Test setup:
    -- A/M manual mode (Red LED)
    -- V variable displayed
    -- ProSoft: IEEE conversion
    - Procedure: Turn pulser knob to change value and read registers
    - Expected Observation: Converted value = V value
  10. Write Floating Point IEEE Data Type
    - Function code: 16
    - Starting register address: 1954 (zero-based)
    - Number of registers: 2
    - Test setup:
    -- A/M manual mode (Red LED)
    -- V variable displayed
    -- ProSoft: IEEE conversion
    - Procedure: Write value (-10.0 to +110.0)
    - Expected Observation: V value = Write value
  11. Read String Data Type
    - Function code: 3 or 4
    - Starting register address: 5450 (zero-based)
    - Number of registers: 6
    - Test setup:
    -- V variable displayed
    -- ProSoft data type: String (ASCII)
    - Procedure: Read registers
    - Expected Observation: String = "Loop01" (Loop name)
  12. Write String Data Type
    - Function code: 16
    - Starting register address: 5461 (zero-based)
    - Number of registers: 3
    - Test setup:
    -- V variable displayed
    -- ProSoft data type: String (ASCII)
    - Procedure: Write string (6 char max, dot and quote illegal)
    - Expected Observation: V units (press UNITS key) = Write string
  13. Read Discrete Data Type from Registers
    - Function code: 3 or 4
    - Starting register address: 31024 (zero-based)
    - Number of registers: 1
    - Test setup: ProSoft data type: Bit
    - Procedure: Read register
    - Expected Observation:
    -- Bit 0 = PB1 state
    -- Bit 1 = PB2 state
    -- Bit 3 = A/M state
    -- Bit 4 = Quickset Bit 4 state (press QUICK key, STORE to enact)
    -- Bit 5 = Quickset Bit 5 state
    -- Bit 6 = Quickset Bit 6 state
    -- Bit 7 = Quickset Bit 7 state
    -- Bit 8 = Quickset Bit 8 state
    -- Bit 9 = Quickset Bit 9 state
    -- Bit A = Quickset Bit A state
    -- Bit B = Quickset Bit B state
    -- Bit C = Quickset Bit C state
    -- Bit D = Quickset Bit D state
    -- Bit E = Quickset Bit E state
    -- Bit F = Quickset Bit F state
    (Press EXIT CONF to return to main view)

Performing the above tests 9-10, a rung was added to convert integer data to floating point values for the read and write operations.
Read IEEE data example

Write IEEE data example

The below data object displays the results of the above Test 11 read data string type.

The below data object displays the results of the above Test 12 write read data string type.

The above tests were achieved utilizing the debug port and COMMVIEW data analyzer.

Image Gallery



Contact Information


Siemens Energy & Automation
Process Instrumentation Business Unit
1201 Sumneytown Pike
Spring House, PA 19477-0900
Phone: (215)646-7400
Fax: (215)646-3547

Home : Products : Support : Distributors : Services : News/Events : Contact Us : ProSoft Tested