SLM-SIM-8#

Description#

  • Input Simulator with toggle switch inputs.

  • 8 input points for industrial control applications.

  • Compatible with Synergy Logic systems .


Configuration#

  • No configuration required


Modbus Mapping#

Note

The following register mappings are based on a single-module configuration. Actual mappings may differ based on the physical slot arrangement in your system.

Modbus Register Mapping#

Channel

Modbus Input Status Register

Access

CH1

10001

Read-Only

CH2

10002

Read-Only

CH3

10003

Read-Only

CH4

10004

Read-Only

CH5

10005

Read-Only

CH6

10006

Read-Only

CH7

10007

Read-Only

CH8

10008

Read-Only

Notes:

  • There is a one-to-one mapping between channels and registers (e.g., CH1 → 10001, CH2 → 10002, etc.).


Specifications#

Download SLM-SIM-8 Datasheet


Example Usage#

Note

The following examples assume that it is the only module connected. Actual mapping may vary depending on the configuration of the system.

import time
from pyModbusTCP.client import ModbusClient
import struct

client_ip = '192.168.1.255'  # Replace with your device's IP
client = ModbusClient(host=client_ip, port=502, auto_open=True)

value = client.read_discrete_inputs(address = 0, count = 16) # Read all 16 inputs
print(value)

Note

This is an explanatory section on how to read/write to a module. For a more complete example using Python, visit Python Example.

#include <ArduinoModbus.h> // Include Modbus library

// Assume ModbusRTUClient is already initialized (e.g., ModbusRTUClient.begin(...))
int slaveId = 0x01;       // The ID of the Modbus slave device
int startAddress = 0;     // The starting address of the inputs
int numInputs = 16;         // The number of inputs to read (0-15)

enum modbusType {
    INPUT_STATUS,
    INPUT_REGISTER,
    HOLDING_REGISTER,
    COIL
};

void setup() {
    # Setup modbus client
}

void loop() {
    uint16_t inputs[numInputs];
    ModbusRTUClient.requestFrom(slaveId, INPUT_STATUS, startAddress, numInputs);
    for (int i = 0; i < numInputs; i++) {
        inputs[i] = ModbusRTUClient.read();
    }
    for (int i = 0; i < numInputs; i++) {
        Serial.println(inputs[i]);
    }
}

Note

The above code uses the ArduinoModbus library and is not a complete program.

Note

This is an explanatory section on how to read/write to a module. For a more complete example using Arduino, visit Arduino Example.

Under Modbus_TCP_Server -> Modbus Server Channel Codesys Modbus Server Channel Under Modbus_TCP_Server -> Modbus Server Channel -> I/O Mapping Codesys Modbus Server I/O Mapping Usage

VAR
    DCI16_1 AT %IB0 : BYTE;
    DCI16_2 AT %IB1 : BYTE;
    DCICH1 AT IX0.0 : BOOL;
    DCICH2 AT IX0.1 : BOOL;
    DCICH3 AT IX0.2 : BOOL;
    DCICH4 AT IX0.3 : BOOL;
    DCICH5 AT IX0.4 : BOOL;
    DCICH6 AT IX0.5 : BOOL;
    DCICH7 AT IX0.6 : BOOL;
    DCICH8 AT IX0.7 : BOOL;
    DCICH9 AT IX1.0 : BOOL;
    DCICH10 AT IX1.1 : BOOL;
    DCICH11 AT IX1.2 : BOOL;
    DCICH12 AT IX1.3 : BOOL;
    DCICH13 AT IX1.4 : BOOL;
    DCICH14 AT IX1.5 : BOOL;
    DCICH15 AT IX1.6 : BOOL;
    DCICH16 AT IX1.7 : BOOL;
END_VAR

Note

This is an explanatory section on how to read/write to a module. For a more complete example using Codesys, visit Codesys Example.

Tag

Tag Name

Type

DI1

Boolean

DI2

Boolean

DI3

Boolean

DI4

Boolean

DI5

Boolean

DI6

Boolean

DI7

Boolean

DI8

Boolean

DI9

Boolean

DI10

Boolean

DI11

Boolean

DI12

Boolean

DI13

Boolean

DI14

Boolean

DI15

Boolean

DI16

Boolean

Usage

Productivity Suite Modbus Config

Note

This is an explanatory section on how to read/write to a module. For a more complete example using Productivity Suite, visit Productivity Suite Example.

Safety Precautions#

  • Do not add or remove modules while field power is applied.

  • Ensure proper grounding and wire connections to prevent electrical hazards.

  • Follow all local and national electrical codes.

  • Maintain adequate ventilation to prevent overheating.

For more details and technical support, visit Synergy Logic or contact support@synergy-logic.com.