泓格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 就能在控制台上显示打印信息,这样子就能知道它是什么 了,但是当我需要看大量的地方或者在一个文件中查看的时 ...
随机推荐
- 3.4 MyArrayList 类的实现
3.4 MyArrayList 类的实现 这节提供一个便于使用的 MyArrayList 泛型类的实现,这里不检测可能使得迭代器无效的结构上的修改,也不检测非法的迭代器 remove 方法. MyAr ...
- 手写Koa.js源码
用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...
- Prometheus监控告警浅析
前言 最近有个新项目需要搞一套完整的监控告警系统,我们使用了开源监控告警系统Prometheus:其功能强大,可以很方便对其进行扩展,并且可以安装和使用简单:本文首先介绍Prometheus的整个监控 ...
- Docker 实战(2)- 配置 Jenkins 容器上的持续集成环境
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 搭建 Jenkins 容器 就是 ...
- gitlab - 解决添加webhook提示Url is blocked: Requests to the local network are not allowed的问题
问题背景 给项目添加 webhook 保存之后报错了 解决方案 进入 admin area 进入 settings-network 保存设置后,重新进入项目并设置 webhook 保存即可成功
- 僵尸进程与SIGCHLD信号
什么是僵尸进程? 首先内核会释放终止进程(调用了exit系统调用)所使用的所有存储区,关闭所有打开的文件等,但内核为每一个终止子进程保存了一定量的信息.这些信息至少包括进程ID,进程的终止状态,以及该 ...
- TCP/IP协议图解
联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈. 1.主机到网络层协议:以太网协议 主机到网络层主要为IP协议和ARP协议提供服务.发送和接收网络数据报 ...
- [LeetCode题解]23. 合并K个升序链表 | 分治 + 递归
方法一:分治 + 递归 解题思路 在21. 合并两个有序链表,我们知道如何合并两个有序链表.而本题是合并 k 个有序链表,可以通过大问题拆分成小问题解决,即把 k 个链表,拆分成 k/2 个链表组,俩 ...
- 使用Ant将项目打成war包
现在很多项目Java基本都是基于maven管理的,maven对于jar包管理和打包的方便这里就不再赘述,但是如果没有使用maven管理如何将一个Java Web项目打成war包呢,这里推荐使用Ant. ...
- WinRM服务远程命令执行
WinRM服务简介 WinRM是WindowsRemoteManagementd(win远程管理)的简称.基于Web服务管理(WS-Management)标准,使用80端口或者443端口.这样一来,我 ...