PyModbus Documentation - Read the Docs

PyModbus Documentation

Release 2.5.0 Sanjay

Mar 07, 2021

Contents:

1 PyModbus - A Python Modbus Stack

1

1.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Example Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.5 Pymodbus REPL (Read Evaluate Print Loop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.6 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.7 Current Work In Progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.8 Development Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.9 Contributing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.10 License Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 CHANGELOGS

7

2.1 version 2.5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 version 2.5.0rc3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 version 2.5.0rc2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 version 2.5.0rc1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5 Version 2.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6 Version 2.3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.7 Version 2.3.0rc1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.8 Version 2.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.9 Version 2.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.10 Version 2.0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.11 Version 2.0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.12 Version 2.0.0rc1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.13 Version 1.5.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.14 Version 1.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.15 Version 1.5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.16 Version 1.4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.17 Version 1.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.18 Version 1.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.19 Version 1.3.0.rc2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.20 Version 1.3.0.rc1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.21 Version 1.2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.22 Version 1.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.23 Version 1.0.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

i

2.24 Version 0.9.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Pymodbus REPL

15

3.1 Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Usage Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 DEMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Examples

23

4.1 Async Asyncio Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2 Async Asyncio Serial Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.3 Async Tornado Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.4 Async Tornado Client Serial Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.5 Async Twisted Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.6 Async Twisted Client Serial Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.7 Asynchronous Processor Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.8 Asynchronous Server Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.9 Callback Server Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.10 Changing Framers Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.11 Custom Datablock Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.12 Custom Message Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.13 Dbstore Update Server Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.14 Modbus Logging Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.15 Modbus Payload Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.16 Modbus Payload Server Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.17 performance module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.18 Synchronous Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.19 Synchronous Client Ext Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.20 Synchronous Server Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.21 Updating Server Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

4.22 Asynchronous Asyncio Serial Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4.23 Bcd Payload Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.24 Concurrent Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4.25 Libmodbus Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.26 Message Generator Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

4.27 Message Parser Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.28 Modbus Mapper Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.29 Modbus Saver Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.30 Modbus Scraper Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

4.31 Modbus Simulator Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.32 Modicon Payload Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

4.33 Remote Server Context Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

4.34 Serial Forwarder Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

4.35 Sunspec Client Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

4.36 Thread Safe Datastore Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

4.37 Gui Common Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

5 Pymodbus

145

5.1 pymodbus package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

6 Indices and tables

225

Python Module Index

227

Index

229

ii

1 CHAPTER

PyModbus - A Python Modbus Stack

Important: Note This is a Major release and might affect your existing Async client implementation. Refer examples on how to use the latest async clients.

1.1 Summary

Pymodbus is a full Modbus protocol implementation using twisted/torndo/asyncio for its asynchronous communications core. It can also be used without any third party dependencies (aside from pyserial) if a more lightweight project is needed. Furthermore, it should work fine under any python version > 2.7 (including python 3+)

1.2 Features

1.2.1 Client Features

? Full read/write protocol on discrete and register ? Most of the extended protocol (diagnostic/file/pipe/setting/information) ? TCP, UDP, Serial ASCII, Serial RTU, and Serial Binary ? asynchronous(powered by twisted/tornado/asyncio) and synchronous versions ? Payload builder/decoder utilities ? Pymodbus REPL for quick tests

1

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download