python modbus_tk模块学习笔记(rtu slaver例程)
GIT地址:https://github.com/ljean/modbus-tk
找到modbus rtu slaver 例程
用宝塔将例程复制到centos目录
#!/usr/bin/env python
# -*- coding: utf_8 -*-
"""Modbus TestKit: Implementation of Modbus protocol in python(C)2009 - Luc Jean - luc.jean@gmail.com(C)2009 - Apidev - http://www.apidev.frThis is distributed under GNU LGPL license, see license.txt
"""import sysimport modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import serialPORT = 0
#PORT = '/dev/ptyp5'def main():"""main"""logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s")#Create the serverserver = modbus_rtu.RtuServer(serial.Serial(PORT))try:logger.info("running...")logger.info("enter 'quit' for closing the server")server.start()slave_1 = server.add_slave(1)slave_1.add_block('0', cst.HOLDING_REGISTERS, 0, 100)while True:cmd = sys.stdin.readline()args = cmd.split(' ')if cmd.find('quit') == 0:sys.stdout.write('bye-bye\r\n')breakelif args[0] == 'add_slave':slave_id = int(args[1])server.add_slave(slave_id)sys.stdout.write('done: slave %d added\r\n' % (slave_id))elif args[0] == 'add_block':slave_id = int(args[1])name = args[2]block_type = int(args[3])starting_address = int(args[4])length = int(args[5])slave = server.get_slave(slave_id)slave.add_block(name, block_type, starting_address, length)sys.stdout.write('done: block %s added\r\n' % (name))elif args[0] == 'set_values':slave_id = int(args[1])name = args[2]address = int(args[3])values = []for val in args[4:]:values.append(int(val))slave = server.get_slave(slave_id)slave.set_values(name, address, values)values = slave.get_values(name, address, len(values))sys.stdout.write('done: values written: %s\r\n' % (str(values)))elif args[0] == 'get_values':slave_id = int(args[1])name = args[2]address = int(args[3])length = int(args[4])slave = server.get_slave(slave_id)values = slave.get_values(name, address, length)sys.stdout.write('done: values read: %s\r\n' % (str(values)))else:sys.stdout.write("unknown command %s\r\n" % (args[0]))finally:server.stop()if __name__ == "__main__":main()
查看centos串口号
[root@bogon /]# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR|CD
1: uart:16550A port:000002F8 irq:3 tx:40867 rx:13240 DSR|CD
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
[root@bogon /]# ls -l /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 12月 18 11:29 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 12月 18 12:39 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 12月 18 11:29 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 12月 18 11:29 /dev/ttyS3
[root@bogon /]#
这里我用的
/dev/ttyS1
刚才复制的例程
修改
PORT = 0
#PORT = '/dev/ptyp5'
为
#PORT = 0
PORT = '/dev/ttyS1'
centos下运行例程
python licheng.py
输出
RtuServer /dev/ttyS1 is opened
running...
enter 'quit' for closing the server
输入
set_values 1 0 0 1 2 3 4 5 6 7 8 9 10
返回
done: values written: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
modbus poll
python modbus_tk模块学习笔记(rtu slaver例程)相关推荐
- python modbus tk 库_python modbus_tk模块学习笔记(rtu slaver例程)
GIT地址:https://github.com/ljean/modbus-tk 找到modbus rtu slaver 例程 用宝塔将例程复制到centos目录 #!/usr/bin/env pyt ...
- #Python第三方模块学习笔记(四)——CSV模块功能及主要函数介绍
声明:本篇文章为转载文章并附有自己的理解,如有冒犯请联系博主立马删除 源地址:https://blog.csdn.net/u012162613/article/details/41915859 1.c ...
- python zipfile模块学习笔记(一)
ZIP文件格式是一种常见的存档和压缩标准,这个zipfile模块提供了工具来创建.读取.写入.附加和列出一个ZIP文件.使用ZIP64扩展(即压缩文件大小超过4G),它能解压加密的ZIP文件,解密过程 ...
- python里面temp是啥-Python tempfile模块学习笔记(临时文件)
tempfile.TemporaryFile 如何你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么用TemporaryFile函数创建临时文件是最好的选择.其他的应用程序是无法找到 ...
- python urllib模块学习笔记
这个模块是最基本最常用的,以前看过,总结一下 # coding : utf-8 import urllib url = 'http://cnblogs.com' #代理服务器 proxies = {' ...
- python模块学习笔记
python模块学习笔记 1.Python自动发送邮件smtplib 2.制作二维码图片MyQR 3.绝对值模块math 4.CSV模块 5.openpyxl 模块,操作Excel文件 ExcelMa ...
- python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)
[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...
- Python基础语法学习笔记
Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...
- Python 基础知识学习笔记——NumPy
Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...
- Python基础知识学习笔记——Matplotlib绘图
Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...
最新文章
- pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行、并设置keep参数保留重复行中的最后一个数据行
- 让数据为你带来无限可能性
- linux 自动化交互套件 expect 介绍 shell非交互
- Python语法基础(长期)
- MFC BEGIN_MESSAGE_MAP()
- vux radio 改造为 tree 代码片段
- c语言生成随机的坐标,C语言文件的随机读写
- Spring Boot基础学习笔记21:自定义用户认证
- java id自增_Java分布式自增长ID实现方案
- mysql事务最好别用_理解完这些基本上能解决面试中MySql的事务问题
- 项目过程中的部分逻辑
- 基于樽海鞘群算法的线性规划求解matlab程序
- 小波变换原理及傅里叶变换(极好的文章)
- 修改用户密码命令linux,linux下passwd命令设置修改用户密码 - Alanf - 博客园
- 游戏开发20课 tilemap 绘制
- Android开发-Notification通知栏通知最基础运用
- 单片机助手,STM32、杰发科技、定时器计算工具助手,CAN比特率计算助手
- 软件构造课程面向对象编程学习心得
- LPA* 路径搜索算法介绍及完整代码
- 九宫格按键输入c++