泓格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 就能在控制台上显示打印信息,这样子就能知道它是什么 了,但是当我需要看大量的地方或者在一个文件中查看的时 ...
随机推荐
- How to get last SysExcelWorksheet object row or column[X++]
findLastColumn int findLastColumn(SysExcelWorksheet _sysExcelWorksheet, boolean _data = true) { #Exc ...
- pytorch加载语音类自定义数据集
pytorch对一下常用的公开数据集有很方便的API接口,但是当我们需要使用自己的数据集训练神经网络时,就需要自定义数据集,在pytorch中,提供了一些类,方便我们定义自己的数据集合 torch.u ...
- 重拾python所要知道的一些主干知识点
前言:因为有一段时间没有用python了,最近需要用到,只能回头过去看B站视频补一补,因为语言都是相通的,而且一些细节都可以去查表解决,所以呢,我们只需要知道一些python与其他语言的不同和常见的优 ...
- Android基础——项目的文件结构(二)
Android基础--项目的文件结构(二) AndroidManifest.xml文件分析 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目 ...
- Docker 实战(3)- 搭建 Gitlab 容器并上传本地项目代码
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 搭建 Gitlab 容器 搜索 ...
- JS缓冲运动案例
点击"向右"按钮,红色的#red区块开始向右缓冲运动,抵达到黑色竖线位置自动停止,再次点击"向右"#red区块也不会再运动.点击"向左"按钮 ...
- Java基础 之一 基本知识
Java基础 之一 基本知识 1.数据类型 Java有8种基本数据类型 int.short .long.byte.float.double.char.boolean 先说明以下单位之间的关系 1位 = ...
- brctl 增加桥接网卡
前言 之前有一篇介绍配置桥接网卡的,这个桥接网卡一般是手动做虚拟化的时候会用到,通过修改网卡的配置文件的方式会改变环境的原有的配置,而很多情况,我只是简单的用一下,并且尽量不要把网络搞断了,万一有问题 ...
- flink1.10版local模式提交job流程分析
1.WordCount程序实例 2.本地监听9000端口后测试结果 3.job提交流程 4.local模式执行StreamGraph任务 5.流程分析 flink job提交流程个人理解可以大致分为定 ...
- Leetcode 1329. 将矩阵按对角线排序 题解
首先遍历对角线元素,顺序为: 先从第一列的最后一行到第一行 然后从第一行的第一列到最后一列 遍历的同时记录坐标和数值,对数值进行排序,然后坐标顺序放回. class Solution: def dia ...