我是靠谱客的博主 哭泣羊,最近开发中收集的这篇文章主要介绍Python modbus_tk官方slave例子使用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

看懂官方的例子和实际操作一遍后,就可以很快使用python的modbus了。当然还有其他各种例子,可以参考!

modbus-tk/tcpslave_example.py at master · ljean/modbus-tk · GitHub

标题

1.set_values 1 0 1 2 3 6 12解释

第一个参数1是从站的号,第二个参数0是从站的块序号,第三个参数1是开始的地址,

后面的参数2 3 6 12是从地址1开始写,有几个参数写几个地址,依次后排

2.get_values 1 0 1 4解释:

第一个参数1是从站的号,第二个参数0是从站的块序号,第三个参数1是开始的地址,

后面的参数4是从开始地址往后数4个进行读取。

可以连接一个实际的从站,也可以连接一个调试助手的从站,运行结果如下:

标题

import sys
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_tcp
def main():
"""main"""
logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s")
try:
#Create the server
server = modbus_tcp.TcpServer()
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-byern')
break
elif args[0] == 'add_slave':
slave_id = int(args[1])
server.add_slave(slave_id)
sys.stdout.write('done: slave %d addedrn' % 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 addedrn' % 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: %srn' % 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: %srn' % str(values))
else:
sys.stdout.write("unknown command %srn" % args[0])
finally:
server.stop()
if __name__ == "__main__":
main()

最后

以上就是哭泣羊为你收集整理的Python modbus_tk官方slave例子使用方法的全部内容,希望文章能够帮你解决Python modbus_tk官方slave例子使用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部