Modbus Slave
The KAS Runtime In computer science, runtime (or run-time) describes the operation of a computer program, the duration of its execution, from beginning to termination (compare compile time). Within KAS, runtime also refers to the virtual machine that manage the program written in a computer language while it is running includes fully integrated slave functions for enabling Modbus communication on a serial link or Ethernet Ethernet is a large, diverse family of frame-based computer networking technologies that operate at many speeds for local area networks (LANs).
This communication is done in the background, asynchronously, at the cycle time (20-1000 milliseconds) specified in the Controller Properties. See Configure the Controller for more information.
- Variables defined in the HMI "Human-machine interfaces "
Also known as computer-human interfaces (CHI), and formerly known as man-machine interfaces, they are usually employed to communicate with PLCs and other computers, such as entering and monitoring temperatures or pressures for further automated control or emergency response to describe the interface are passed to the controller this way.
- See Map Variables to HMI for more information.
- This means there is no data coherency in the data exchange because the variables read by the Modbus do not come from the same PLC "Programmable Logic Controller" A Programmable Logic Controller, PLC, or Programmable Controller is a digital computer used for automation of industrial processes, such as control of machinery on factory assembly lines. Used to synchronize the flow of inputs from (physical) sensors and events with the flow of outputs to actuators and events cycle.
- This data has a rather low priority.
- It is interpreted by human feedback and should never be noticed by the user.
-
-
Kollmorgen HMIs are limited to communicating no more frequently than every 100 milliseconds.
-
-
It is possible to have two Modbus master devices communicating with a controller at the same time, accessing the same variables.
Example: Having two separate HMI panels running the same program on a single, large machine.
Protocol Specification
The protocol supported is Open Modbus on Ethernet.
These are the supported Modbus function codes:
Code |
Description |
---|---|
1 |
read coils |
2 |
read bit inputs |
3 |
read holding registers |
4 |
read input registers |
5 |
write 1 coil |
6 |
write 1 register |
15 |
write n coils |
16 |
write n registers |
- As a default, the first valid address for each kind of data is 1.
- If you use Modbus devices with other addressing conventions, you can change the base offset for each kind of data using the Tools > Addresses menu command.
Data Exchange Configuration
The KAS-IDE "Integrated development environment" An integrated development environment is a type of computer software that assists computer programmers in developing software. IDEs normally consist of a source code editor, a compiler and/or interpreter, build-automation tools, and a debugger has a dedicated configuration tool. To run it,
- In the Controller Properties dialog box, select the Other Modbus devices option.
See Configure the Controller for more information. - Double-click the Fieldbus A Fieldbus is an industrial network system for real-time distributed control (e.g. CAN or Profibus). It is a way of connecting instruments in a plant design node in the project explorer to open it
- Click the Insert Configuration icon to add the Fieldbus configuration.
- Select the Modbus Slave in the configuration selector.
- Click OK to continue.
The Modbus Slave configuration is represented as a tree:
- Modbus Slave
- Slave number (variables that can be accessed from external Modbus masters)
- Input bits data block (read by masters)
- Variable (*)
- Input words data block (read by masters)
- Variable (*)
- Coil bits data block (forced by masters)
- Variable (*)
- Holding bits data block (forced by masters)
- Variable (*)
- Input bits data block (read by masters)
(*) The items with this mark can appear several times in the configuration.
- Slave number (variables that can be accessed from external Modbus masters)
Modbus Slave Configuration
You need to configure the Modbus Slave to make variables visible from external Modbus masters (e.g., SCADA systems).
This is a simple example of slave configuration:
- Double click the Server item to setup the Modbus slave number that will identify the runtime In computer science, runtime (or run-time) describes the operation of a computer program, the duration of its execution, from beginning to termination (compare compile time). Within KAS, runtime also refers to the virtual machine that manage the program written in a computer language while it is running application.
- When the local server is selected, use the Insert Slave/Data Block menu command to insert Modbus data blocks.
- These kinds of block are available:
-
-
For optimal controller performance use Input Registers where possible.
Input Registers require 15-25% less CPU time to exchange data than Holding Registers do.
Each data block is identified by a Modbus base address and a number of items (bits or words).
-
-
Read and write requests sent by Modbus masters are denied if the range specified in the request does not fit within a data block defined in the configuration.
Requests overlapping two data blocks are denied.
Example: If you configure a block of 16 words starting at address 1 and another block of 16 words starting at address 17, a request for read or write of 32 words starting at address 1 is denied and an address error exception is reported.
When a server data block is selected, use the New symbol command to map a variable to an item of the data block.
Each variable is identified by a valid symbol of a variable in the open project and an offset in the data block according to Modbus addressing.
Exchanges
- For exchanging:
- Boolean variables through Modbus words, a hexadecimal mask is available to define to which bit of a word a variable is attached.
- Example: Enter the mask 0001 to map a Boolean variable to the less significant bit of a word.
- 32-bit variables (e.g., DINT, REAL, etc.), select to map the variable on two consecutive words.
64-bit variables(e.g., LINT, LREAL, LWORD, ULINT), select to map the variable on four consecutive words
- Boolean variables through Modbus words, a hexadecimal mask is available to define to which bit of a word a variable is attached.
Optional: Sort the variables of each data block according to their offset using the Sort symbols menu command at any time.
Data Types
You can freely map a variable of any data type to a Modbus item.
The Runtime automatically converts the value to the type of the variable.