泓格WINPAC主机与第三方模块rs 485 modbus rtu通信测试
开发语言:C#
开发环境:VS2008(支持WINCE开发的最后一个版本)
运行环境:Windows CE 5.0~7.0
项目说明:多台涨格winpac系列的主机,原来使用泓格SDK开发的程序,采集7018系列模块的数据,主要有7018R和7018Z。现客户要求增加一个温湿度模块,此模块支持rs485 modbus rtu通讯。
首先尝试使用SDK方法,可以读取7018模块的数据,却读不到温湿度模块的数据,代码如下:
void Main()
{
var remoteIOPort = PACNET.UART.Open("COM2,9600");
var cmd = Encoding.ASCII.GetBytes("#01\r");
send(cmd, 0); //可以正常读取7018
send(cmd, 1); //可以正常读取7018
cmd = new byte[] { 0x65, 0x04, 0x00, 0x01, 0x00, 0x01, 0x68, 0x2E };
send(cmd, 1); //不能读取温湿度模块
} void send(byte[] cmd, int type)
{
if (type == 0)
{
float[] fValue = new float[10];
var readResult = PACNET.PAC_IO.ReadAIAll(remoteIOPort, PACNET.PAC_IO.PAC_REMOTE_IO(1), fValue);
foreach (var item in fValue)
{
appendText(item);
}
}
else if (type == 1)
{
var buffer = new byte[72];
PACNET.UART.SendCmdExt(remoteIOPort, cmd, (uint)cmd.Length, buffer, (uint)buffer.Length);
appendText(BitConverter.ToString(buffer));
}
}
直接读写串口,测试成功。代码如下:
using System; using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading; namespace TESTSERIALPORT
{
public partial class FrmSerialPort : Form
{
SerialPort serial; public FrmSerialPort()
{
InitializeComponent();
serial = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);
serial.Open();
} private void btnWrite_Click(object sender, EventArgs e)
{
serial.ReadTimeout = 1000;
serial.WriteTimeout = 1000;
if (!serial.IsOpen)
{
serial.Open();
appendText(serial.PortName);
appendText(serial.BaudRate);
appendText(serial.Parity);
appendText(serial.DataBits);
appendText(serial.StopBits);
appendText(serial.IsOpen);
} var cmd = Encoding.ASCII.GetBytes("#01\r");
send(cmd, 1);
cmd = new byte[] { 0x65, 0x04, 0x00, 0x01, 0x00, 0x01, 0x68, 0x2E };
send(cmd, 1);
cmd = new byte[] { 0x65, 0x04, 0x00, 0x02, 0x00, 0x01, 0x98, 0x2E };
send(cmd, 1);
} void send(byte[] cmd, int type)
{
serial.Write(cmd, 0, cmd.Length);
Thread.Sleep(300);
var size = serial.BytesToRead;
appendText(size); var buffer = new byte[size];
var result = serial.Read(buffer, 0, size);
if (type == 0)
{
appendText(PACNET.MISC.WideString(buffer));
}
else if (type == 1)
{
appendText(BitConverter.ToString(buffer));
}
} void appendText(object obj)
{
textBox1.Text += obj.ToString() + "\r\n";
}
}
}
泓格WINPAC主机与第三方模块rs 485 modbus rtu通信测试的更多相关文章
- python 常用第三方模块
除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在https://pypi.python.org/pypi上注册,只要找到对应的模块名字,即可用pip安装. 本章介绍 ...
- python第三方模块精选
python不但有着强大丰富的“内置电池”,同样的,第三方模块也是非常的多.目前收集了requests.paramiko.pymsql,以后会陆续添加: 一.requests Python标准库中提供 ...
- 【socket-python应用】控制泓格ET-7044通信模块输入DI输出DO
socket-python应用:控制泓格ET-7044通信模块输入DI输出DO 本节主要内容: 1.socket-python建立TCP通信 2.配合泓格通信模块说明书,查看输入输出寄存器地址,发送指 ...
- 【05】Python 标准模块:random、os、time、hashlib 第三方模块:excel、数据库 列表生成式
1 模块分类 标准模块,不需要你单独安装,python自带的模块 第三方模块 自己写的python 一个python文件就是一个模块 2 random模块 2.1 随机取元素 import rando ...
- Nginx网络架构实战学习笔记(四):nginx连接memcached、第三方模块编译及一致性哈希应用
文章目录 nginx连接memcached 第三方模块编译及一致性哈希应用 总结 nginx连接memcached 首先确保nginx能正常连接php location ~ \.php$ { root ...
- 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语
目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...
- 日志、第三方模块(openpyxl模块)
目录 1.日志模块 2.第三方模块 内容 日志模块 1.日志模块的主要组成部分 1.logger对象:产生日志 无包装的产品 import logging logger = logging.getLo ...
- logging、openpyxl、第三方模块下载
### 日志模块的组成部分 ```pythonimport logging# 1.logger对象:产生日志logger = logging.getLogger('转账记录')# 2.filter对象 ...
- logging日志模块详细,日志模块的配置字典,第三方模块的下载与使用
logging日志模块详细 简介 用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么 了,但是当我需要看大量的地方或者在一个文件中查看的时 ...
随机推荐
- windows编译openssl(64位)一游
编译openssl,一套标准流程: (环境: win10 64位os, vs2019) 需要的工具:perl nasm openssl源码包 1 安装perl 2 下载nasm,将n ...
- rpm包的卸载与安装
1. rpm包的管理介绍:一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有RPM扩展名的文件,RPM是RedHat Package Manager(RedHat软件包管 ...
- .netcore简单使用hangfire
Hangfire简介 Hangfire是一个开源的任务调度框架,它内置集成了控制页面,很方便我们查看,控制作业的运行:对于运行失败的作业自动重试运行.它支持永久性存储,支持存储于mssql,mysql ...
- IDEA创建maven项目没有src/main/java目录问题解决
IDEA创建maven项目没有src/main/java目录问题解决 今天新建一个maven项目的时候,没有src文件目录,查了网上很多,依然没有解决,后来发现是VM Options ...
- 【原创】ARM平台内存和cache对xenomai实时性的影响
目录 1. 问题概述 2. stress 内存压力原理 2. cache 因素 2.1 未加压 2.2 加压(cpu/io) 3. 内存管理因素 3.1 内存分配/释放 3.2 MMU拥塞 4 总结 ...
- JavaSE基础语法学习-流程控制
流程控制 用户交互Scanner Scanner**对象** 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); 接下来我们演示一个最 ...
- 【linux】-Makefile简要知识+一个通用Makefile
目录 Makefile Makefile规则与示例 为什么需要Makefile Makefile样式 先介绍Makefile的两个函数 完善Makefile 通用Makefile的使用 通用的Make ...
- 如约而至,.NET 5.0 正式发布
作者:Richard 翻译:精致码农-王亮 原文:http://dwz.win/WFz 说明:文章太长,后面关于 C# 9 语言新特性及平台新特性的部分没有翻译,这部分基本都是代码示例,请直接阅读原文 ...
- 小学生学习C++应该具备哪些基础?
一.电脑操作基础: 应该具备一些必要的电脑相关的知识,如操作系统的相关知识,如何打开.编辑.保存文件.对电脑的能力有一些基本的认识,以及会使用鼠标,键盘熟练输入. 磨刀不误砍柴工,至少要做到能快速找到 ...
- .NET操作Excel
一.读取Excel数据,并显示 1.配置文件 <configuration> <system.web> <compilation debug="true&quo ...