采用VSPD、ModbusTool模拟串口、MODBUS TCP设备进行Python采集软件开发
版权声明:本文为博主原创文章,欢迎转载,并请注明出处。联系方式:460356155@qq.com
不少仪器/设备都提供了数据采集的接口,其中不少是串口或网络的MODBUS/TCP协议。
串口是比较简单,但是较为古老的接口方式,现在的笔记本基本上都没有这种形式的接口了,如果软件开发在笔记本上进行的话,无法调试,或要绕一下用USB转串口的小设备,很不方便。
还好有前辈开发了虚拟串口软件,可以很方便的用于串口通讯的软件开发,我用的是VSPD(网盘)。用虚拟串口软件开发有几方面的好处:
1、电脑/笔记本没有串口也能正常进行开发。
2、通信/采集软件开发过程中不影响设备的正常使用。
3、软件开发过程中可以剔除硬件故障的影响。
4、如果软件、硬件一起开发的话,可并行进行,无需等待硬件完成后才能进行软件调试。
VSPD的安装及基本使用方法:
1、执行vspd.exe进行软件安装
2、运行vspdconfig.exe
3、选择端口名称对,点击添加端口。每次添加2个端口,一发送的二接收,二发送的一接收。
用一个端口模拟电脑串口,另一个端口模拟其他设备端口,根据两者的通信协议进行程序编写。
下面是编写的模拟FIBERPRO偏振消光比测试仪ER2200的Python程序:
# -*- coding:utf-8 -*- u"""FIBERPRO偏振消光比测试仪ER2200模拟程序""" __author__ = 'zhengbiqing 460356155@qq.com' import binascii
import signal
import sys import serial ser = serial.Serial('COM4', 115200, timeout=1) print 'Welcome to ', __doc__, ',', 'device is %s' % ('Ready' if ser.isOpen() else 'Error')
print 'Author is ', __author__ # ctrl+c处理函数
def signal_handler(signal, frame):
ser.close()
print 'You pressed Ctrl+C! ', 'device is %s' % ('Closed' if not ser.isOpen() else 'Error')
print 'Goodbye!'
sys.exit(0) # 程序是死循环,通过ctrl+c退出,为了在退出时关闭串口,捕获该信号
signal.signal(signal.SIGINT, signal_handler) while True:
data = ser.read(7)
if len(data):
# 调试打印,b2a_hex(data)是把字符串data转换为十六进制数
print binascii.b2a_hex(data), data if data == 'read?\r\n':
#三个数字分别表示被测光的消光比,偏振角度,和光功率
ser.write('19.35,53.47,-5.17\r')
对采用网口的MODBUS TCP协议的设备,开发数据采集软件也可以用模拟软件替代实际设备,完成后再把软件用到实际设备上。
我用得是ModbusTool(网盘),包括master和slave,分别模拟主设备和从设备。
ModbusTool的安装和基本使用方法:
1、分别执行setup.exe安装。
2、对master,填写好希望连接设备的ip、port,点击connnet连接设备,填写start起始地址,size读写的长度,点击Functions的功能码就行了。
3、对slave,填写侦听的端口号port,点击listen等待master连接(侦听接口为127.0.0.1),可以在地址中输入数字后点Apply进行地址数据设置。
采用VSPD、ModbusTool模拟串口、MODBUS TCP设备进行Python采集软件开发的更多相关文章
- 用virtualbox+模拟串口+CDT调试linux内核 TCP/IP协议栈-起步
经常有人问一台机器如何将hello经网络发送给另一台机器,我确实是不知道,只能看代码了. 说明:本人对内核的研究学习也是刚刚起步,有很多不了解的,所以文中可能会有一些"一本正经的胡扯&quo ...
- Socket编程之聊天程序 - 模拟Fins/ModBus协议通信过程
设备控制软件编程涉及到的基本通信方式主要有TCP/IP与串口,用到的数据通信协议有Fins与ModBus. 更高级别的通信如.net中的Remoting与WCF在进行C/S架构软件开发时会采用. 本篇 ...
- Modbus tcp 格式说明 通讯机制 附C#测试工具用于学习,测试
前言: 之前的博客介绍了如何用C#来读写modbus tcp服务器的数据,文章:http://www.cnblogs.com/dathlin/p/7885368.html 当然也有如何创建一个服务器文 ...
- Modbus RTU通信协议详解以及与Modbus TCP通信协议之间的区别和联系
Modbus通信协议由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约.由于其免费公开发行,使用该协议的厂家无需缴纳任何费用,Mod ...
- 【.NET6+Modbus】Modbus TCP协议解析、仿真环境以及基于.NET实现基础通信
前言:随着工业化的发展,目前越来越多的开发,从互联网走向传统行业.其中,工业领域也是其中之一,包括各大厂也都在陆陆续续加入工业4.0的进程当中. 工业领域,最核心的基础设施,应该是与下位硬件设备或程序 ...
- 开放型Modbus/TCP 规范
修订版 1.0,1999 年3 月29 日Andy SwalesSchneider 电气公司aswales@modicon.com目录目录............................... ...
- modbus tcp 入门详解
Modbus tcp 格式说明 通讯机制 附C#测试工具用于学习,测试 前言: 之前的博客介绍了如何用C#来读写modbus tcp服务器的数据,文章:http://www.cnblogs.com ...
- Modbus TCP和Modbus Rtu协议的区别 转
http://blog.csdn.net/educast/article/details/9177679 Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MOD ...
- MODBUS TCP和MODBUS RTU的差别
TCP和RTU协议非常类似, MBAP Header长度共7个字节,分别为Transaction identifier(事务标识符),Protocol identifier(协议标识符),Length ...
随机推荐
- 【开源】Netty轻松实现聊天室,附带数据记录,聊天历史
阅读本文约“2.5分钟” 听说快七夕······ 不对,这不是今天的主题,嘿嘿. 今天说说一个小的网页聊天室,功能如下 群聊无限制 记录用户群聊信息 下次登录显示聊天历史 消息发送速度(光速) 聊天历 ...
- Maven(九)Eclipse创建Web项目(简单方式)
1. 创建Maven项目(以简单方式) 2. 勾选WAR 3. 选择properties->projectFacts 此处的错误可忽略,配置好会会消失,主要缺失web.xml文件 4. 将框中选 ...
- react create-react-app 跨域
"proxy":"http://youAddr.com" 直接到根目录package.json里增加上面这行就行了,改成自己需要的地址.
- vue2.5.2版本 :MAC设置应用在127.0.0.1:80端口访问; 并将127.0.0.1指向www.yours.com ;问题“ Invalid Host header”
0.设置自己的host文件,将127.0.0.1指向自己想要访问的域名 127.0.0.1 www.yours.com 1.MAC设置应用在127.0.0.1:80端口访问: config/index ...
- Dynamics 365 POA表记录的查询
微软动态CRM专家罗勇 ,回复313或者20190311可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . PrincipalO ...
- 免费开源ERP-成功案例分析(2)
Odoo用户案例 Odoo用户概要 关于Odoo全球的用户,我们来看一些数据: Odoo目前全球有300万使用者 Odoo系统上每天新创建的数据库超过1000个 Odoo和Word.Excel.Pow ...
- 前端js面向对象编程以及封装组件的思想
demo-richbase 用来演示怎么使用richbase来制作组件的例子 作为一名前端工程师,写组件的能力至关重要.虽然javascript经常被人嘲笑是个小玩具,但是在一代代大牛的前仆后继的努力 ...
- Git在商业项目中的使用流程
一 引言 这一篇文章还是记录我在杭州工作的总结. 我刚来公司的时候,对Git的使用很头痛,因为在学校里面很少用这个东西,即使用,一般也只有一个分支,不会出现代码冲突和代码合并的情况.但是公司里面一个项 ...
- 01-vue学习之前的准备
一.具备的基础知识 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不 ...
- [20190416]11g下那些latch是Exclusive的.txt
[20190416]11g下那些latch是Exclusive的.txt --//昨天测试了11g下那些latch是共享的,链接:--//是否反过来剩下的都是Exclusive的.继续测试: 1.环境 ...