海为触摸屏不能透传了

海为触摸屏不能透传了,第1张

一、物联终端与德力西系列PLC串口通讯

1打开云组态SCADA软件,创建工程。

2添加德力西PLC设备(设备列表没有德力西PLC按F12会显示出相应隐藏的设备),触摸屏和PLC的通讯方式串口,更改相应的com口参数如下图所示。

3 设备创建完成后,系统提示是否定义变量点击是,添加外部变量。

4制作主画面,①添加图元→②双击图元→③绑定相应的控制变量→④选择相应的变量点击确定即可。

5打开设备管理工具,输入HMI的IP地址将组态工程下载到HMI上即可,如需要远程下载打开设备管理工具,通过云管理进行远程下载,这样简单的组态画面制作完成。

6通过谷歌浏览器输入HMI的IP地址查看设备在线情况,如下图出现设备不在线说明步骤2的设备或者资料格式选择错误更正即可,也可能是设备和HMI接线未接好检查一下即可,根据现场的情况处理的方式不同,未出现设备不在线情况则说明通讯成功。

二、物联终端与德力西 PLC透传

1在组态软件工具菜单栏中打开数据透传工具。

2登入海为云APP账号。

3①选择绑定的设备(远程连接需先绑定对应物联终端设备)→②点击连接→③选择工程内设列表的设备→④点击开始透;透传开始HMI屏幕出现云引擎联机中字样。

4打开德力西PLC编程软件,①新建一个工程→②选择相应的PLC型号,点击确定即可。

5在菜单栏里选择①通讯设置→②先选择连接方式,点击选手动配置→③通讯参数设置选择串口的资料格式,点击确认(PLC串口在数据透传工具可以查看)④点击通讯测试,通讯成功后会d出连接成功,否则为PLC通讯失败⑤点击确定即可完成通讯。

6根据需求简单配置完,最后把PLC程序下载到PLC中即可。

串口不同。

CH9141是一款蓝牙串口透传芯片,芯片支持广播模式、主机模式和从机模式,支持蓝牙BLE42。支持串口AT配置和在从机模式下的蓝牙通信配置,支持MODEM联络信号,并提供通用GPIO、同步GPIO、ADC 采集功能,串口波特率最高1Mbps。蓝牙从机模式下可设置蓝牙名称、厂商信息等参数,可通过APP 或者串口命令轻松配置,方便快捷。提供电脑端虚拟串口驱动可使蓝牙接口直接使用串口调试工具、兼容串口应用程序,无需二次开发即可与串口接口通讯,轻松让串口实现免插线和不受线缆距离限制。

蓝牙HC05是主从一体的蓝牙串口模块,简单的说,当蓝牙设备与蓝牙设备配对连接成功后,我们可以忽视蓝牙内部的通信协议,直接将将蓝牙当做串口用。当建立连接,两设备共同使用一通道也就是同一个串口,一个设备发送数据到通道中,另外一个设备便可以接收通道中的数据。

第一,我们还需要了解一下它的参数,才可以开始调试

==规格参数==#模块工作角色:从模式#串口参数:38400bits/s 停止位1位无校验位#配对码:1234#设备名称:HC-05#连接模式:任意蓝牙设备连接模式(恢复默认设置 AT指令:AT+ORGL)#核心模块使用HC-05从模块,引出接口包括VCC,GND,TXD,RXD,KEY引脚、蓝牙连接状态引出脚(STATE),未连接输出低,连接后输出高#led指示蓝牙连接状态,红蓝灯一起快闪表示没有蓝牙连接,慢闪(红蓝灯每2秒一起闪一下表示进入AT模式,双闪(一秒红蓝灯一起闪2下)表示蓝牙已连接并打开了端口#底板设置防反接二极管,带33V LDO,输入电压36~6V,未配对时电流约30mA,配对后约10mA,输入电压禁止超过7V!#接口电平33V,可以直接连接各种单片机(51,AVR,PIC,ARM,MSP430等),5V单片机也可直接连接,无需MAX232也不能经过MAX232!#空旷地有效距离10米(功率等级为CLASS 2),超过10米也是可能的,但不对此距离的连接质量做保证#配对以后当全双工串口使用,无需了解任何蓝牙协议,支持8位数据位、1位停止位、可设置奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。#可以通过拉高34脚进入AT命令模式设置参数和查询信息#体积小巧(357cm152cm),工厂贴片生产,保证贴片质量。并套透明热缩管,防尘美观,且有一定的防静电能力。#可通过AT命令切换为主机或者从机模式,可通过AT命令连接指定设备#支持从4800bps~1382400bps间的标准波特率。

第二,接着我们就开始进入蓝牙模块的AT模式。

==接口定义==RXD:接收端TXD:发送端EN:设置工作模式(1、工作模式 2、AT指令设置模式)VCC:模块供电正极(5V)GND:模块供电负极==使用方法==HC05主要有两种方法进行AT设置,一种是用USB转TTL,另一种就是借助Arduino主板进行设置。按住HC05左上角的黑色按钮,再进行接线通电,指示灯间隔2秒闪烁一次,表示进入AT模式。如果指示灯连续闪烁很快,说明在工作模式,未进入AT模式。===使用方法1===#蓝牙与USB转串口模块连接方式,RXD-TX TXD-RX VCC-VCC GND-GND。

第三,进入AT模式以后我们就可以对它的一些设置进行更改了。

要设置蓝牙AT指令,必须先进入AT模式,当蓝牙模块state灯变为慢闪,则表明已经进入AT模式。(将蓝牙模块与转串口模块对插,用跳线将AT对应的引脚接VCC)这时候将转串口模块接入电脑,打开超级终端或者串口调试助手便可以开始设置AT模式。打开串口调试助手,测试AT指令,找到相应串口号后,注意两点,1、设置AT模式的波特率为38400 2、输入指令后加上回车后换行,发送后返回OK。

串口WiFi模块是由具备WiFi外设的ARM组成的系统,它们上电后会启动自己的系统然后等待与你的单片机进行串口通信,主动权还是掌握在你的单片机上,远程控制甚至是远程升级都是单片机自己实现的功能。

串口WiFi模块你可以看成是单片机的串口扩展,就是一个具有WiFi无线传输功能的串口而已,连接只需要按模块需求连接串口各条信号线即可。

有的WiFi模块还允许你使用模块上现有的ARM资源,你可以节省单片机,将自己的程序直接运行在该模块上。

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright © 1999-2020, CSDNNET, All Rights Reserved

打开APP

斯内科

关注

DataGridView使用数据源绑定,每隔几秒钟就刷新数据 原创

2021-11-07 23:02:55

斯内科

码龄11年

关注

我们测试使用内存数据表来绑定DataGridView,每隔5秒钟就刷新一次数据绑定。

新建winforms应用程序BIndDataDemo,将默认的Form1重命名为FormBindDataGridDemo。

窗体FormBindDataGridDemo设计如图:

窗体FormBindDataGridDemo主要程序如下

(忽略设计器自动生成的代码):

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDrawing;

using SystemLinq;

using SystemText;

using SystemThreading;

using SystemThreadingTasks;

using SystemWindowsForms;

namespace BIndDataDemo

{

public partial class FormBindDataGridDemo : Form

{

/// <summary>

/// 重新绑定数据事件

/// </summary>

public event Action<DataTable> EventRebindData;

/// <summary>

/// 线程是否已经运行

/// </summary>

bool isRun = false;

public FormBindDataGridDemo()

{

InitializeComponent();

dgvDataAutoGenerateColumns = false;

dgvcIdDataPropertyName = "Id";

dgvcEnglishNameDataPropertyName = "EnglishName";

dgvcChineseNameDataPropertyName = "ChineseName";

dgvcDBNumDataPropertyName = "DBNum";

dgvcAddressDataPropertyName = "Address";

dgvcDataTypeDataPropertyName = "DataType";

dgvcByteCountDataPropertyName = "ByteCount";

dgvcValueDataPropertyName = "Value";

}

private void FormBindDataGridDemo_Load(object sender, EventArgs e)

{

EventRebindData += FormBindDataGridDemo_EventRebindData;

EventRebindDataInvoke(GenerateDataTable(2021));

}

private void FormBindDataGridDemo_EventRebindData(DataTable dt)

{

thisBeginInvoke(new Action(() =>

{

dgvDataDataSource = dt;

dgvDataFirstDisplayedScrollingRowIndex = dgvDataRowsCount - 1;

}));

}

/// <summary>

/// 生成数据表

/// </summary>

/// <param name="count"></param>

/// <returns></returns>

private DataTable GenerateDataTable(int count)

{

DataTable dataTable = new DataTable("DataDemo");

dataTableColumnsAdd("Id", typeof(int));

dataTableColumnsAdd("EnglishName", typeof(string));

dataTableColumnsAdd("ChineseName", typeof(string));

dataTableColumnsAdd("DBNum", typeof(string));

dataTableColumnsAdd("Address", typeof(int));

dataTableColumnsAdd("DataType", typeof(string));

dataTableColumnsAdd("ByteCount", typeof(int));

dataTableColumnsAdd("Value", typeof(string));

dataTableRowsAdd(1, "DataItem1", "数据项1", "DB200", 0, "Int", 2, "32767");

dataTableRowsAdd(2, "DataItem2", "数据项2", "DB200", 2, "Real", 4, "-723425");

dataTableRowsAdd(3, "Barcode", "条码", "DB200", 6, "String", 12, "ABCD");

double coefficient = (count % 2 == 0 01 : 02);//系数

for (int i = 0; i < count; i++)

{

dataTableRowsAdd(i + 4, $"DataItem{i + 4}", $"数据项{i + 4}", "DB200", 18 + 4 i, "Real", 4, (i + 4) 2 + coefficient i);

}

return dataTable;

}

private void btnWrite_Click(object sender, EventArgs e)

{

int id = ConvertToInt32(numIdValue);

if (id < 1 || id > dgvDataRowsCount)

{

MessageBoxShow($"指定的编号{id}不在范围内", "错误");

return;

}

dgvDataRows[id - 1]Cells["dgvcValue"]Value = txtValueText;

}

/// <summary>

/// 重新绑定按钮事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btnRebind_Click(object sender, EventArgs e)

{

btnRebindEnabled = false;

isRun = true;

Random random = new Random(GuidNewGuid()GetHashCode());

Task task = TaskFactoryStartNew(() =>

{

//每隔一秒钟重新绑定

while (isRun)

{

EventRebindDataInvoke(GenerateDataTable(randomNext(1000, 8000)));

ThreadSleep(5000);

}

});

TaskWaitAll(new Task[] { task }, 8000);

}

/// <summary>

/// 停止绑定事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btnStop_Click(object sender, EventArgs e)

{

btnRebindEnabled = true;

isRun = false;

}

private void FormBindDataGridDemo_FormClosing(object sender, FormClosingEventArgs e)

{

//解除事件绑定

EventRebindData -= FormBindDataGridDemo_EventRebindData;

isRun = false;

}

}

}

程序运行如图:

打开CSDN,阅读体验更佳

DataGridView刷新数据_「已注销」的博客

在DataGridView上 *** 作数据之后,无论是增删改都是对数据库进行了 *** 作,而DataGridView这个控件在 *** 作之后是不会变化的,需要重新的去数据库里读取一下数据才行,可以理解为之刷新 DataTable dt = (DataTable)dataGridView1DataSource;dt

C# DataGridView 刷新_originaldream的博客_c# datagrid

c# 控件 dataGridView 使用时,都会遇到加载数据需要重新刷新。网上有不少答案,大致做一下总结。1)跟我以前一样笨,重新加载一遍数据,绑定一遍,使用datasource = datatable2)使用 datablinding 直接绑定数据3)使用updata() 刷新函数

C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新

C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新

datagridview 定时刷新

private void Eating2_Load_2(object sender, EventArgs e) { string bookid = UsersStaticBook; // TODO: 这行代码将数据加载到表“dataSet_NoticeTB_NOTICE”中。您可以根据需要移动或移除它。 thi

继续访问

winform datagridview实时更新显示查询结果_全民医保的博客_d

datagridview是winform编程上很常见也很常用的控件之一,下面就根据一个小需求来展示一下datagridview是怎么实时刷新显示查询结果的。 目标界面 界面 说明:这个界面并不是VS系统的界面,是用到了第三方的控件实现的

关于datagridView的刷新_Yanzzz的博客_datagridview刷新

在重新读取SQl 数据库后,DataGridView中所有结果会显示两次。 但这并不是DataGridView本身的问题,而是由DataSet没有清空导致的。 所以解决办法就是dstablesclear(); 怪不得dataGridView没有clear

关于c# winform 中 使用多线程实现后台定时刷新 datagridview 数据

背景 本人c#新手,最近公司要求做的一个程序,需要利用后台定时查询数据绑定到datagridview上,要求程序不能出现假死,给人友好的体验,于是想到利用创建另一个线程用于查询数据然后再把数据显示在datagridview上。程序完成的时候,在本机上代码调试也没出问题,很完美,但是到了实际的运用的时候,datagridview的界面出了问题,没有数据并且显示一个大红叉,并且还报错。之前还以为是电

继续访问

DataGridView刷新数据

在DataGridView上 *** 作数据之后,无论是增删改都是对数据库进行了 *** 作,而DataGridView这个控件在 *** 作之后是不会变化的,需要重新的去数据库里读取一下数据才行,可以理解为之刷新 DataTable dt = (DataTable)dataGridView1DataSource; dtRowsClear(); dataGridView1Da

继续访问

如何用timer实现DataGridView实时更新数据。

private void timer1_Tick(object sender, EventArgs e) { dataGridView1DataSource = bllGetModelList()Tables[0]; dataGridView1Refresh(); }

继续访问

DataGridView数据刷新

自己遇到的问题,解决了,记录下,方便以后查找。 基本情况:前一段做一个Winform的项目,是用来验货的,多条产品数据,有一个应扫数量,和一个实扫数量,扫描到哪个商品就把列表中对应商品的数量加数量,如果商品实扫数量达到应扫数量,就移动到已扫完成列表。商品验货数量变化后,列表要精细排序,列表行的背景色要区分已验货的和未验货的。 如下图: 遇到问题:最开始用的List<>作为Da

继续访问

热门推荐 如何实现DataGridView刷新数据?

近期做项目,遇到一个问题,

继续访问

mysql更新datagridview_如何在Visual Basic(NET)中绑定到MySQL数据库的datagridview上实现自动刷新

正如jmcilhinney建议的那样,datagridviews被绑定到DataTables(或者有时候是我自己的列表),所以他说的听起来应该有效 显然,因为它没有提出我的建议:你说"fields"你可以更新,添加,删除等所选行,对吗?听起来你正在做一些新行 正如您在数据绑定网格视图中所做的那样,我怀疑您实际上是以典型方式添加它们,而是采用某种程序化替代方案 因此,尝试实现您的解决方案,

继续访问

如何实现DataGridView实时更新数据

贴过来做技术积累,原文出处:>

以上就是关于海为触摸屏不能透传了全部的内容,包括:海为触摸屏不能透传了、ch9141和hc05的区别、串口wifi模块如何和单片机相连,又如何对单片机进行编程,从而实现远程控制。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9286565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存