文档库 最新最全的文档下载
当前位置:文档库 › VB上位机程序编写

VB上位机程序编写

VB上位机程序编写
VB上位机程序编写

VB Mscomm控件基本介绍

VB Mscomm控件

一、MSComm控件的主要属性、事件

1、MSComm的属性

Commport:设置或返回串口号。如设成1(默认值),表示对Com1进行操作。Settings:以字符串的形式设置或返回串口通信参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。

Portopen:设置或返回串口状态。值为True时打开串口,值为False时关闭串口。InputMode:设置或返回接收数据的类型。若值为0,则表示以文本形式读取;值为1,

则表示以二进制形式读取。

Inputlen:设置或返回一次从接收缓冲区中读取字节数。

InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。当将其值设为0

时,则输入寄存器将被清空。

Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。

OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。当将其值设为0

时,则输出寄存器将被清空。

Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。Rthreshold:该属性为一阀值。当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。用户可在OnComm事件处理程序中进行相应处理。若Rthreshold属性设置为0,则不产生OnComm事件。例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将Rthreshold设置为1。这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。

Sthreshold:该属性亦为一阀值。当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。若Sthreshold属性设置为0,则不产生OnComm事件。要特别注意的是仅当发送缓冲区中字符数小于该值的瞬间才产生OnComm事件,其后就不再产生OnComm事件。例如Sthreshold设置为3,仅当发送缓冲区中字符数从3降为2时,MSComm控件设置Commevent属性为ComEvSend,同时产生OnComm事件,如发送缓冲区中字符始终为2,则不会再产生OnComm事件。这就避免了发送缓冲区中数据未发送完就反复发生OnComm事件。CommEvent:这是一个非常重要的属性。该属性设计时无效,运行时只读。一旦串口发生通信事件或产生错误,依据产生的事件和错误,MSComm控件为CommEvent属性赋不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的

代码,进行相应的处理。CommEvent属性的代码、常数及含义参见后文

2、MSComm的事件

除了公共事件之外,MSComm只有一个OnComm事件。当CommEvent属性值变化时将发生OnComm事件,指示发生一个通讯事件或错误。当我们设置Rtheshold属性值为0时,

将使得捕获comEvReceive事件无效。

智能液晶电子桌牌:是一款新颖的显示LOG 、会徽会标、与会者姓名和职务以及可实现多种会议服务功能的会议桌面终端设备。它外形美观大方,完全取代了传统塑料、纸质或铜制桌牌,是会议桌面显示设备的一大创新,同时也是集多种会议功能一体的新型产品终端。本产品与传统桌牌相比,具有信息化程度高、可反复使用的特点。它外型美观时尚、稳重中彰显尊贵、人名显示清晰明亮,是现代信息化会议的理想工具.

席媒无线智能液晶电子桌牌在供电方面:内置高容量聚合物锂电池(8000毫安时)供电、确保会议时间达到8个小时以上,从而摒弃了电源线、通讯线等一切连接线缆,最终脱离了常规会议类产品必须集成化的束缚,完全没有了布局及手拉手使用的限制。

席媒无线智能液晶电子桌牌在通讯方面:采用全新的无线设计理念WIFI802.11G无线联网方式,电子桌牌通过无线基站AP与控制服务器进行网络通讯,完全实现了后台一人集中操控信息编辑及收发,免去了通过U

盘或刷卡一个一个桌牌信息导入的苦恼,真正做到了产品任意摆放,内容随意更换,并且即摆即用的要求。

席媒无线智能液晶电子桌牌在显示方面精心选材:采用高亮度(350流明)、高分辨率(800*480DPI)数字真彩屏,显示文字图形清晰亮丽,背景模板可自定义更换,整个无线桌牌系统还可以与自动化办公OA系统对接。

席媒无线智能液晶电子桌牌在终端操作方面:采用正面彩屏为触控屏式,这样便于操作会议功能(人员签到、呼叫服务、投票表决、计时服务、同声传译等)及查看相关会议信息。后台软件系统一人便可轻松完成会场布局安排,人名及会标和背景选择等信息发送。

席媒无线智能液晶电子桌牌在互动方面:短消息收发、呼叫服务、信息发布通知等充分体现产品的互动性,增添了会议的娱乐性和人性化。

席媒无线智能液晶电子桌牌在集控方面:利用有线或无线网络,后台一人便可集中控制和管理整个系统运行,操作简单,易学。

考虑到有些高档机密会议室必须具备信号干扰器,屏蔽系统的因素,杭州席媒也开发了有线型智能液晶电子桌牌,通过有线控制主机集中供电和通讯,依托高智能化的系统软件实现人性化多样会议系统服务功能。从而克服了无法使用等特点。

编辑本段产品功能

l 人名显示

参会人员姓名、职称、会徽会标、会议主题显示

l 会议签到

触摸点击按键,后台自动记录签到者和签到时间

l 会议内容

会议查询服务(会议日程安排表、会议布置安排、会议主题、会议用餐安排、会议社会调查、会议内容网上发布等)

l 呼叫服务

呼叫茶水、音响设备、麦克、笔、纸、紧急情况等

l 投票服务

对事件满意度进行表决或对候选人进行选举

l 计时服务

发言计时及提醒功能

l 日期和时间

即时显示日期和时间

4.1 Visual Basic概述

多功能电子桌牌需要和上位机通信,才能实现桌牌的下载更新和广播信息的接收显示等功能,上位机软件由高级编程语言Visual Basic(VB)编写。Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用面向对象与事件驱动的程序设计思想,使编程变得更加方便、快捷,使用Visual Basic 既可以开发个人或小组使用的小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件,是国内外最流行的程序设计语言之一。VB的推出标志着可视化编程时代的到来,具有划时代的意义。

其特点有以下几点:

(1)可视化的设计平台在Visual Basic中,需要什么样的界面或工具,放置相应的对象(控件)即可,所见即所得,特别方便。

(2)面向对象的设计方法

按钮、文本框、图片框、列表框、窗口、屏幕、打印机等都是程序中的对象。在VB中编程者将这些对象采用搭积木的方式就可以构建出程序,这就使程序设计变得轻松有趣。

(3)事件驱动的编程机制

VB中程序的执行是由事件来驱动。程序员不必设计程序执行的过程顺序,只要设计出当某一事件发生时要执行的代码即可。这样,就大大提高了编程的效率。

(4)易学易用

由于VB发源于Basic,所有Basic的简单易用的特性被很好的保留下来,不需要有较多的计算机专业知识即可轻松上手。

(5)使用方便,功能完备

VB的编程工作轻松有趣,VB中提供了很宽松的编程环境。

上位机软件设计中要实现和桌牌的数据通信,MSComm控件是必不可少的。该控件易学易用,只有约30个属性和事件,可以从VB的联机帮助中找到它的全部资料。MSComm控件为应用程序提供串行通讯功能,其处理通讯的方式为事件查询方式和驱动方式两种。这里仅简述它的主要属性及事件,下面以MSCOMM1表示在窗体上设置的MSComm控件的名称为例进行说明。

上位机软件设计的一些总结收藏

很多时候,我们需要把硬件设备测量的数据输入计算机,以能够有一个更好的数据表示和一个更好的人机界面,比如说对于一个测井系统,井下测量设备通过各种各样的传感器测得地下的各种信号,通过电缆传输给地面的测量装置。地面测量装置的功能主要是对传感器测来的各种信号进行转换,比如对模拟信号进行采样、对脉冲信号进行计数等。但地面测量装置对数据的表现往往有很大的局限性,比如只能在很小的液晶品上显示实时的曲线,事后无法进行回放分析等。这些时候,往往借助价格相对低廉的PC来更丰富、更直观的表达数据!

这类系统的需求往往是固定的,但系统开发出来后的维护,和大多数的软件一样,如果设计编码做的不好,维护起来也不是一件令人开心的事情,对于未从事开发的维护人员更是如此!以下根据个人的经验总结一些在设计开发过程中的一些原则!

1、设计此类系统往往分为数据输入/输出和转换(从下位机取得数据、设置下位机运行状态、原始值和工程值之间的转换)、数据处理(往往和行业有关的转换)、数据表示(为了让专业人员或操作工更直观的对系统状态进行判断)。

设计时可以将这三部分独立开来,通过参数定义交互的方式。三个部分的设计和编码可以独立开来,只要遵从事先约定的数据交换协议即可。这样做可以使开发过程分阶段或在不同的组员之间进行分工而不互相依赖,可以方便的编写测试而不等待其他模块提供数据。比如对于数据输入/输出模块,它只需保证能正确的和下位机交换数据并转化为事

先约定的格式即可;对于中间数据处理模块,它只负责对于这对于事先约定的数据格式进行正确的处理即可,这部分往往和行业背景有关、所用的软件只涉及语言本身而没有其他复杂的软件方法,很多行业相关的人员往往足以担任;数据表现部分,往往包含数据的存取、绘图、打印等操作,它只依赖于事先定一的数据格式,并不依赖于其他两部分(当然这只是对于开发而言、系统运行时当然依赖于前两者提供的数据)。

2、数据的定义数据是整个软件工作的基础,一切的软件活动都是围绕数据而展开,因此定义数据时一定要不厌其烦对其进行说明,对它们代表的实际意义、将对其进行何种处理、确定的以及能够预料到的说明均应当进行记录。

3、对于方法最起码的,要说明该方法操作何种数据、函数功能是什么。

4、对于此类软件,不可避免的要使用一些全局的变量,可以借用组态软件中有关数据字典的概念,对这些全局变量进行统一管理,对其何处初始化、何处修改等尽量进行说明!

5、牢记两点:以后要维护;封装。

6、建议在每个文件创建时进行规范,注明该模块创建人、时间、模块功能等,对于版权信息,那是项目以外的问题,虽个人情况决定!

上位机

上位机是指人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。

在概念上

控制者和提供服务者是上位机

被控制者和被服务者是下位机

也可以理解为主机和从机的关系

但上位机和下位机是可以转换的

两机如何通讯,一般取决于下位机。TCP/IP一般是支持的。但是下位机一般具有更可靠的独有通讯协议,购买下位机时,会带一大堆手册光盘,告诉你如何使用特有协议通讯,里面会举大量例子,一般对编程人员而言一看也就那么回事,使用一些新的API罢了。多语言支持功能模块,一般同时支持数种高级语言为上位机编程。

通常上位机和下位机通讯可以采用不同的通讯协议,可以有RS232的串口通讯,或者采用RS485串行通讯,当用计算机和PLC通讯的时候不但可以采用传统的D形式的串行通讯,还可以采用更适合工业控制的双线的PROFIBUS-DP通讯,采用封装好的程序开发工具就可以实现PLC和上位机的通讯。当然可以自己编写驱动类的接口协议控制上位机和下位机的通讯。

用VB编写上位机

VB编写上位机实例 用VB编写上位机实例 16:14:22 UTC+0800Sun Apr 1 2007 用VB6.0编写第一个串口通信上位机程序 Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。电子制作HPOO 下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。 打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示,建立Visual Basic 的编程环境。 图1 在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件Microsoft Comm control 6.0调入工作菜单。 图2

在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。图3 图3 可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在C:\WINNT\system32\MSCOMM32.OCX文件。 如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。 图4 通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:

Timer定时器控件设置属性,(通过按F4键可弹出此窗口) Mscomm通信控件参数属性设置(通过单击控件的右键属性可弹出此窗口) 本文用到的其他控件:CommandButton控件和TextBox控件按默认属性设置不变。单片机编程器HPOO 以上设置完成,回到编程窗体区中,任意双击。会显示Visual Basic的程序窗体的Load事件程序。在代码窗口中输入:单片机编程器HPOO Private Sub Form_Load() MSComm1.PortOpen = True '窗体的加载时,就打开通信端口,通信端口的参数也可以在此指定 Timer1.Enabled = Timer1.Enabled '窗体的加载时,同时定时器控件事件 End Sub 这样设置目的是当程序在打开是,首先打开通信控件MSComm,注意这里的串口通信参数中的波特率设置是默认参数的。 即:波特率:9600bps;校验位:无;数据位:8位;停止位:1。电子元件邮购网 双击定时器控件Timer1同样在定时器窗体的事件程序中,输入相关代码: Private Sub Timer1_Timer() If MSComm1.InBufferCount > 0 Then '程序检查输入缓冲区中是否有数据,若有数据 Text1.Text = Text1.Text + MSComm1.Input

基于VB的上位机程序设计说明

3 基于VB6.0的上位机程序设计 内部培训资料(不得转载) 随着嵌入式系统在电子领域应用的不断深入,可视化的单片机控制与检测系统越来越成为单片机技术的应用热点。广泛应用到工业自动化生产、交通、医疗、教育和各种自动控制等领域,如心电监护、全方位视频跟踪监视。在这些复杂的数字系统中,计算机被称为上位机,通过上位机和相关的软件实现传感信号的检测和对外部设备的控制。利用计算机实现可视化的控制系统包括上位机程序设计、接口设计和单片机系统设计。 单片机相比较计算机而言又叫下位机,是直接对检测对象测量和控制的系统,有时也把接口与下位机设计在在一个系统中统称接口电路。基于计算机基础的上位机程序可以提高复杂的单片机控制系统的人机交互功能。 本项目设计的内容是一个简单的温度检测系统,上位机程序用来检测和显示单片机系统发送的数据,下位机是一个简单的温度检测系统,通过USB接口虚拟一个串口传输数据,上位机程序实时显示温度,并通过曲线的形式描绘出温度的变化过程。上位机程序VB6.0设计,程序执行后,上位机程序要定时向下位机即单片机系统发送指令,下位机在接到命令后就开始发送温度信息。上位机显示的温度曲线要能准确的表示当时的温度,误差不能超过5%,能过显示的温度范围在20摄氏度到80摄氏度之间。上位机程序两次接收的温度数据间隔控制在在1秒钟左右,能够显示的温度曲线的总时间在2分钟左右。 3.1 VB简单认识 VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。今天我们以VB6.0为基础,简单的认识VB,然后我们就可以利用VB这个强大的开发工具去开发我们需要的各类程序。 3.1.1 VB6.0基本操作 在Visual Basic安装成功之后,安装程序自动在【开始】菜单中建立V isual Basic 6.0的程序组和程序项。单击【开始】按扭,指向【所有程序】选项,再指向【Microsoft V isual Basic 6.0中文版】程序组,单击【Microsoft V isual Basic 6.0中文版】选项即可启动V isual Basic6.0中文版。 在VB6.0启动后,屏幕上将出现如图3-1所示的启动界面,在启动界面中会出现一个【新建工程】对话框。

arduino与上位机VB串口通信

用pc控制LED灯 注意红色的LED灯,熄灭的

亮了,程序界面,注意要开启串口才能控制

注意,我的arduino板子占用com3,所以mscomm也要用3口,不要弄错了,这里走过弯路,隔天才发现的,(彩色小点PS加上的,方便 理解)。 下面是源码,方便复制:

-------------------------------------------------------- 'vb写的上位机程序 Private Sub Command1_Click() Comm3.PortOpen = True End Sub Private Sub Command2_Click() Comm3.PortOpen = False End Sub Private Sub Command3_Click() Comm3.Output = "a" '用a表示开灯 End Sub Private Sub Command4_Click() Comm3.Output = "b" '用b表示灭灯 End Sub ----------------------------------------- //arduino程序 //通过电脑开关LED灯(LED灯负极连在arduino uno r3板数字3口,正极串一个1K 电阻后连板子5V电源正极

// int led1=3; //把LED连在Arduino数字端口3 //初始化 void setup() { Serial.begin(9600); //启动串行通讯,波特率为9600b/s pinMode(led1,OUTPUT); digitalWrite(led1,HIGH); //熄灭LED灯 } //主程序 void loop() { char val;//定义变量val,用于暂存上位机发送来的字符 if(Serial.available()>0)//如果上位机发送来了字符 { val=Serial.read(); //读取上位机发来的字符,并保存到val Serial.println(val); //显示接受到的字符 if(val=='a')//如果上位机发送字符'a', { digitalWrite(led1,LOW); //点亮LED灯}

vb6.0串口通讯上位机开发视频教程下载地址

资料1 第一章VisualBasic6基本介绍 1. 菜单栏的使用 2. 属性窗口的使用 3. 创建工程 4.窗体的操作 5. 属性值的设定 6. 程序代码编写 7. 制作一个简单应用程序 8. 窗体属性(1) 9. 窗体属性(2) 10. 窗体事件 11. 方法 第二章VisualBasic6的数据类型与运算符表达式 12.数据类型(1) 13. 数据类型(2) 14. 运算符表达式(1) 15.运算符表达式(2) 16. 运算符表达式(3) 第三章VisualBasic6的内部函数 17.常用内部函数(1) 18.常用内部函数(2) 19. 常用内部函数(3) 20. 常用内部函数(4) 21. 常用内部函数(5) 22. 常用内部函数(6) 23. 常用内部函数(7) 24. 常用内部函数(8) 25. 常用内部函数(9) 26. 常用内部函数(10) 第四章VisualBasic6的基本语句 27.基本语句(1) 28. 基本语句(2) 29. 基本语句(3) 30. 基本语句(4) 、 31.基本语句(5) 32. 基本语句(6)

33. 基本语句(7) 34. 基本语句(8) 35. 基本语句(9) 36. 基本语句(10) 37. 基本语句(11) 38. 基本语句(12) 第五章VisualBasic6的数组 39.数组(1) 40.数组(2) 41. 数组(3) 42. 数组(4) 43. 数组(5) 44. 数组(6) 45. 数组(7) 46. 数组(8) 第六章VisualBasic6的过程 47.过程(1) 48.过程(2) 49. 过程(3) 50. 过程(4) 51. 过程(5) 52. 过程(6) 53. 过程(7) 54. 过程(8) 55. 过程(9) 56. 过程(10) 第七章VisualBasic6的标准控件 57. 1111标准控件(1) 58.标准控件(2) 59. 标准控件(3) 60. 标准控件(4) 61. 标准控件(5) 62. 标准控件(6) 63. 标准控件(7) 64. 标准控件(8) 65. 标准控件(9) 66. 标准控件(10) 67. 标准控件(11)

VB上位机串口通讯

'初始化代码 Private Sub Form_Load() '窗体被加载时产生 If MSComm1.PortOpen = True Then '串口查看是否打开,打开则关闭MsgBox "端口已经打开", 2 'MSComm1.PortOpen = False End If With MSComm1 .CommPort = 3 '设置串口3 .Settings = "9600,n,8,1" .InputLen = 0 '读取接收缓冲区所有字符 .InBufferSize = 1024 '设置接收缓冲区1024字节 .OutBufferSize = 512 '设置发送缓冲区512字节 .InputMode = comInputModeText. '采用文本传输 '.PortOpen = True '打开串口 .SThreshold = 0 '一发送数据就触发OnComm事件 .RThreshold = 1 '接收到一个字节就触发OnComm事件 .InBufferCount = 0 '清除发送缓冲区数据 .OutBufferCount = 0 '清除接收缓冲区数据 End With Text_send.Text = "" Text_recv.Text = "" Text_send_16.Text = "" End Sub '清空对话框数据 Sub Command3_Click(Index As Integer) Text_send.Text = "" Text_recv.Text = ""

Text_send_16.Text = "" End Sub '通讯端口选择 Private Sub Combo1_Click() If Combo1.Text = "com1" Then '通讯端口号设置 https://www.wendangku.net/doc/df3413961.html,mPort = 1 'Text1 = 1 ElseIf Combo1.Text = "com2" Then https://www.wendangku.net/doc/df3413961.html,mPort = 2 'Text1 = 2 ElseIf Combo1.Text = "com3" Then https://www.wendangku.net/doc/df3413961.html,mPort = 3 'Text1 = 3 ElseIf Combo1.Text = "com4" Then https://www.wendangku.net/doc/df3413961.html,mPort = 4 'Text1 = 4 Else https://www.wendangku.net/doc/df3413961.html,mPort = 5 'Text1 = 5 End If End Sub Private Sub Combo2_Click() If Combo2.Text = "9600,e,8,1" Then MSComm1.Settings = "9600,e,8,1" ElseIf Combo2.Text = "9600,n,8,1" Then MSComm1.Settings = "9600,n,8,1" ElseIf Combo2.Text = "57600,n,8,1" Then MSComm1.Settings = "57600,n,8,1" End If End Sub '发送数据 Private Sub Command1_Click(Index As Integer) '判断是否选择了端口与通讯方式 If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2 Exit Sub End If

VB上位机温度采集(含源程序)

VB程序 Option Explicit Dim NowX As Integer Dim MaxPlotNo As Long Dim PreV alue As Single Private Sub cmbCOM_Click() If cmbCOM.ListIndex + 1 = https://www.wendangku.net/doc/df3413961.html,mPort Then Exit Sub Timer1.Enabled = False TimeDelay 100 If MSComm1.PortOpen Then MSComm1.PortOpen = False End If lblMsg.Caption = "已停止检测并关闭通讯端口" cmdOpenCOM.Enabled = True End Sub Private Sub cmdEnd_Click() End End Sub Private Sub cmdOpenCOM_Click() If cmbCOM.ListIndex >= 0 And cmbCOM.ListIndex <= 16 Then https://www.wendangku.net/doc/df3413961.html,mPort = cmbCOM.ListIndex + 1 Else MsgBox "指定通信端口时发生错误!", vbCritical + vbOKOnly, "系统信息" Exit Sub End If On Error GoTo comErr MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True cmdOpenCOM.Enabled = False cmdStart.Enabled = True lblMsg.Caption = "可单击【开始检测】按钮,执行检测的工作。" Exit Sub comErr: MsgBox "打开通信端口时发生错误!请确定通信端口存在且正常。", vbCritical + vbOKOnly, "系统信息" End Sub

VB编写的简单的上位机

一个简单的用VB编写的上位机程序 自己想做一个简单上位机,却发现相关的资料很少,于是在做出来之后把自己的这样一个简单程序上传,给新入门的朋友一个借鉴学习的资料。 窗口布局 用到的MSComm控件的基本属性(必用) CommPort:设置或返回串口通信的串口号(COM口) 设置格式是:https://www.wendangku.net/doc/df3413961.html,mPort[=value],其中object为控件名, 如MSComm1;value的合法值是整形的数据,例如1,2…… 比如https://www.wendangku.net/doc/df3413961.html,mPort=1(默认值),表示我们将用COM1口进 行通信 COM口可以通过鼠标右击“我的电脑(计算机)”图标,在弹出的快捷菜单中选择“管理”,弹出如下图左边的对话框 左键点击“设备管理器”可以看到上图右边对话框 左键点击设备管理器可以看到如上图右边视图

其中的就是当前连接到计算机的可用串口了Settings:以字符串的形式设置或返回串口通信参数。 设置格式:https://www.wendangku.net/doc/df3413961.html,mPort[=value]其中object为控件名,如MSComm1; Value需为一字符串,由四个设置值组成 其格式为:“波特率,奇偶校验,数据位,停止位” Portopen:设置或返回串口状态,若其已经打开,则返回TRUE,否则返回FALSE 设置格式:object.Portopen[=value]其中object为控件名,如 MSComm1;value为一逻辑值,若为TRUE,则打开,否则关闭注意:如果串口不是打开(关闭),而对它进行关闭(打开)将会出错RThreshold:该属性为一阀值。当接收缓冲区中字符数达到该值时,MSComm 控件设置Commevent属性为ComEvReceive,并产生OnComm事件。 用户可在OnComm事件处理程序中进行相应处理。若Rthreshold属 性设置为0,则不产生OnComm事件。例如用户希望接收缓冲区中 达到一个字符就接收一个字符,可将Rthreshold设置为1。这样接收 缓冲区中接收到一个字符,就产生一次OnComm事件。InputMode:设置或返回接收数据的类型。 设置格式:object.InputMode[=value],其中value的值有两个; comInputModeBinary表示以二进制方式接收数据,Input属性返回值为一字符串 comInputModeText表示以字符方式接收数据,Input属性返回值为一字数组 InputLen:设置或返回一次从接收缓冲区中读取字节数。 设置格式:object.InputLen[=value],value为一个整形数据;当其设 置为0时,表示一次读取接收缓冲区中的全部内容。这个属性在定字 节读取中非常有用 Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。 使用格式:str=object.Input,str为一字符串型变量或对象 Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。 使用格式:object.Output=value,value为一字符串型变量或任意类型的 数组 CommEvent:这是一个非常重要的属性。该属性设计时无效,运行时只读。一旦串口发生通信事件或产生错误,依据产生的事件和错误,MSComm 控件为CommEvent属性赋不同的代码,同时产生OnComm事件。 用户程序就可在OnComm事件处理程序中针对不同的代码,进行相 应的处理。 ComEvReceive接受到Rthreshold个字符。该事件将持续产生,直 到用Input属性从接受缓冲区中读取并删除字符。 其它的属性,需要时可以在网上查找相关资料(下面附几个网址)https://www.wendangku.net/doc/df3413961.html,/view/84fb2949336c1eb91a375d91.html 这个里面讲的很详细的

VB编写上位机实例

VB编写上位机实例 用VB编写上位机实例(转载) 用VB6.0编写第一个串口通信上位机程序 Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。 下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。单片机学习 HPOO 打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示,建立Visual Basic的编程环境。 图1 在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件Microsoft Comm control 6.0调入工作菜单。

图2 在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。图3 图3 可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在 C:\WINNT\system32\MSCOMM32.OCX文件。 如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。

图4 通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:调频FM发射话筒制作套件 Timer定时器控件设置属性,(通过按F4键可弹出此窗口)

arduino与vb编写的上位机通讯简单程序

上位机 一、回环测试 1.1VB程序 Option Explicit Private Sub Command1_Click() MSComm1.Output = Trim(TextSend.Text) End Sub Private Sub Command2_Click() Dim num As String num = Trim(MSComm1.Input) If Len(num) = 0 Then TextRecive.Text = "" Else TextRecive.Text = Trim(num) & TextRecive.Text End If End Sub Private Sub Command3_Click() MSComm1.PortOpen = False

End Sub Private Sub Form_Load() MSComm1.PortOpen = True End Sub VB窗口 1.2Arduino程序 char val; void setup() { int i=0; for (i=1;i<=13;i++) pinMode(i,OUTPUT);

Serial.begin(9600); } void loop() { val=Serial.read(); if(-1!=val) { delay(100); Serial.print(val); } } 或者另一程序也能满足要求String comdata = ""; void setup() { Serial.begin(9600); } void loop()

VB编写上位机(MSComm控件)

上位机可方便地实现与单片机之间进行信息传递交互,能够更加容易对机械手臂进行控制,实现操作可视化,更加直观,保存重要数据等功能。我们利用Visual Basic 6.0(以下简称VB)来编制上位机,VB是一种功能强大、简单易学的程序设计语言。它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。本实验涉及控制六路舵机,所以需要编制上位机实现一次向下位机传输含有六个数据的数组,同时接受来自下位机的数组,并显示。 整个过程可分为如下几个过程: 一:VB是面向对象的语言,首先需要绘制程序界面 该上位机大致分为左边的功能部分与右边的可视化调节部分。 功能部分有端口选择,用以选择合适的端口进行串口通信,波特率选择,打开与关闭端口,动作设置等。 为了便于布局,应用frame控件建立区域,再将控件拖到frame区域中,对于功能相同的控件来说,建立控件组的方式会使编程避免重复繁琐,例如HScrollbar控件,先向frame区域内拖入一个HScrollbar控件,再复制,粘贴到frame 区域内部,则提示是否建立控件组,点击确定即可。这样便为后续编程带来很大的方便。 调节部分运用Hscrollbar控件来粗略调节度数,设定按钮与文本框配合来精确调节输出度数。用右列文本框实时读取舵机当前角度。用optionbutton控件来选择hscrollbar的步进精度,这里分为0.1度与1度两个不同的选项。由于一组optionbutton中在程序运行中只能有一个处于选中状态,根据本程序要求,每一横列的两个optionbutton为一组,这样就需要frame控件,在同一个frame区域

VB上位机与PLC通信

随着现代信息技术的发展以及计算机网络的广泛应用,计算机通信技术已经日趋成熟。作为传统的计算机通信方式的串行通信,由于具有线路简单、应用灵活、可靠性高等一系列优点长期以来获得了广泛的应用。计算机串行通信在数据财经、数据通信、故障检测、计算机远程监控等方面有广泛的实用价值,特别在Windows下的串口通信可以充分利用Windows 下的软件资源优势,实现多任务条件下对外部的数据传输、信息收集和处理。在本系统中,我们采用了性能/价格比较高的计算机构成厂级的监控工作站。在PLC与上位计算机之间采用RS-485和RS-232C标准通信接口进行通信。 在两级计算机控制系统中,最不稳定的环节就是上位机。为了保证系统的稳定性,避免因上位机的故障导致系统控制失灵,所有采集到的信号都反馈到PLC当中。上位机需要通过串行通信取得所需的数据信息,并通过串行通信将必要的控制信息和参数设置信息写入PLC 的数据存储区。因此,串行通信作为上位机和下位机联系的唯一方式,在整个系统中具有非常重要的作用。 1.1上位机与PLC间的串行通信 计算机与计算机或计算机与外部设备之间的数据传输和交换的方式主要有串行通信和并行通信两种方式,其中串行通信指的是数据逐位传输的方式。由于串行通信方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。 1.1.1串行通信 串行通信方式又可分为两种:同步串行通信方式和异步串行通信方式。 1.同步串行通信方式:同步串行通信是以数据块(字符块)为信息单位传送,每帧信息可以包含很多字符。同步通信要求通信双方以相同的速率进行,而且要准证确协调,通常通过共

VB上位机与单片机

VB 上位机与单片机 转速测量系统 通过单片机采集转速数据,通过USB口发送到PC,并产生曲线图。 单片机程序: //---------------------串口初始化 ---------------------------- voidinitSerial() { TMOD=0x20; //定时器1置为方式2 TH1=0xfd; TL1=0xfd; //设置波特率位9600 SCON=0x50; //设定串行口工作方式 PCON&=0x00; //波特率不倍增

TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } //---------------------------发送程序 --------------------------------------------- voidsend_char(void) //传送十六位的蝯转速数据,低位在前 { unsignedi=0; while(i;199Then '接收个数判断 Callrenew

'接收完毕 EndIf '读取仪表返回数据串 https://www.wendangku.net/doc/df3413961.html,mEvent CasecomEvReceive Inbyte=MSComm1.Input '接收转速数据 Fori=LBound(Inbyte)ToUBound(Inbyte) '把接收的数据安十六进制格式放入缓冲中 buffer=buffer+Hex(Inbyte(i))+Chr(32) Nexti EndSelect

'获取十进制测量数据 IfLen(Trim(Mid(buffer,1,2)))=1Then datazhuansu(num)=Val("&H"&Mid(buffer,3, 3)&Str("0")&Mid(buffer,1,2))*0.0625 Else datazhuansu(num)=Val("&H"&Mid(buffer,3, 3)&Mid(buffer,1,2))*0.0625 EndIf '获取十六进制测量数据 IfLen(Trim(Mid(buffer,1,2)))=1Then datasu2a=Str("0")&Trim(Mid(buffer,1,2))

用VB编写上位机实例

标签:无标签 用VB编写上位机实例 16:14:22 UTC+0800Sun Apr 1 2007 用编写第一个串口通信上位机程序 Visual 是一个可视化窗口环境的编程软件,目前使用Visual 可以快速简单编写单片机中的串口通信上位机程序。 下面我们以一个完整的通信试验为例子完成如何用Visual 编写单片机串口通信程序。 打开安装好后的Visual 主程序界面。选择“标准EXE”。如图1显示,建立 Visual Basic的编程环境。 图1 在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件 Microsoft Comm control 调入工作菜单。

图2 在打开[部件]对话框中,选择Microsoft Comm control 的选项框,点击[确定]。 图3

图3 可以在图示3中可以看通信控件Microsoft Comm control 的文件是在 C:\WINNT\system32\文件。 如果大家在首次调用通信控件Microsoft Comm control 控件时无法在控件对话框中找到,请直接在系统目录中搜索名为文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。 图4 通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:

Timer定时器控件设置属性,(通过按F4键可弹出此窗口) Mscomm通信控件参数属性设置(通过单击控件的右键属性可弹出此窗口)本文用到的其他控件:CommandButton控件和TextBox控件按默认属性设置不变。 以上设置完成,回到编程窗体区中,任意双击。会显示Visual Basic的程序窗体的Load事件程序。在代码窗口中输入: Private Sub Form_Load() = True '窗体的加载时,就打开通信端口,通信端口的参数也可以在此指定 = '窗体的加载时,同时定时器控件事件 End Sub

用VB编写上位机实例

标签:无标签 VB编写上位机实例 用VB编写上位机实例 16:14:22 UTC+0800Sun Apr 1 2007 用VB6.0编写第一个串口通信上位机程序 Visual Basic6.0是一个可视化窗口环境的编程软件,目前使用Visual Basic6.0可以快速简单编写单片机中的串口通信上位机程序。电子制作HPOO 下面我们以一个完整的通信试验为例子完成如何用Visual Basic6.0编写单片机串口通信程序。 打开安装好后的Visual Basic6.0主程序界面。选择“标准EXE”。如图1显示, 建立Visual Basic的编程环境。 图1 在菜单的[工程]选项中选择[部件],如图2。把Visual Basic的串口通信控件 Microsoft Comm control 6.0调入工作菜单。

图2 在打开[部件]对话框中,选择Microsoft Comm control 6.0的选项框,点击[确定]。 图3

图3 可以在图示3中可以看通信控件Microsoft Comm control 6.0的文件是在C:\WINNT\system32\MSCOMM32.OCX文件。 如果大家在首次调用通信控件Microsoft Comm control 6.0控件时无法在控件对话框中找到,请直接在系统目录中搜索名为MSCOMM32.OCX文件。然后通过浏览加入VB的工作界面中。添加完控件回到编程界面。如下图4。 图4 通过右边的菜单把一些必要的控件放在窗体中。然后点击窗体中的Timer控件按F4弹出属性窗口进行设置。其具体设置如下:

Timer定时器控件设置属性,(通过按F4键可弹出此窗口) Mscomm通信控件参数属性设置(通过单击控件的右键属性可弹出此窗口)本文用到的其他控件:CommandButton控件和TextBox控件按默认属性设置不变。单片机编程器HPOO 以上设置完成,回到编程窗体区中,任意双击。会显示Visual Basic的程序窗体的Load事件程序。在代码窗口中输入:单片机编程器HPOO Private Sub Form_Load() MSComm1.PortOpen = True '窗体的加载时,就打开通信端口,通信端口的参数也可以在此指定 Timer1.Enabled = Timer1.Enabled '窗体的加载时,同时定时器控件事件 End Sub

VB串口上位机程序源代码

Private Sub Form_Load() MSComm1.Settings = "9600,N,8,1" '波特率9600bit/s,无校验,8位数据,1位停止位 https://www.wendangku.net/doc/df3413961.html,mPort = 1 '设定串口,1为com1,这里请选择对应的com序号 MSComm1.InBufferSize = 8 '设置返回接收缓冲区的大小,以字符为单位 MSComm1.OutBufferSize = 2 ' If MSComm1.PortOpen = True Then MSComm1.PortOpen = False '关串口 MSComm1.RThreshold = 4 '设置并返回产生oncomm事件的字符数,以字符为单位 ' RThreshold '为1,接收缓冲区收到每一个字符都会使MSComm控件产生OnComm事件 MSComm1.SThreshold = 1 ' MSComm1.InputLen = 0 '设置从接收缓冲区读取的字符,为0读取整个缓冲区 MSComm1.InputMode = comInputModeText '发文本方度接收 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True MSComm1.InBufferCount = 0 '清除接收缓冲区 Me.Caption = "温度" Text1.Text = "00.0" End Sub Private Sub MSComm1_OnComm() Dim rec As String Select Case https://www.wendangku.net/doc/df3413961.html,mEvent Case comEvReceive rec = MSComm1.Input Text1.Text = rec MSComm1.InBufferCount = 0 '清空接收缓冲区 End Select End Sub

VB上位机程序编写

VB Mscomm控件基本介绍 VB Mscomm控件 一、MSComm控件的主要属性、事件 1、MSComm的属性 Commport:设置或返回串口号。如设成1(默认值),表示对Com1进行操作。Settings:以字符串的形式设置或返回串口通信参数。包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。 Portopen:设置或返回串口状态。值为True时打开串口,值为False时关闭串口。InputMode:设置或返回接收数据的类型。若值为0,则表示以文本形式读取;值为1, 则表示以二进制形式读取。 Inputlen:设置或返回一次从接收缓冲区中读取字节数。 InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。当将其值设为0 时,则输入寄存器将被清空。 Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。 OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。当将其值设为0 时,则输出寄存器将被清空。 Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。Rthreshold:该属性为一阀值。当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。用户可在OnComm事件处理程序中进行相应处理。若Rthreshold属性设置为0,则不产生OnComm事件。例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将Rthreshold设置为1。这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。 Sthreshold:该属性亦为一阀值。当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。若Sthreshold属性设置为0,则不产生OnComm事件。要特别注意的是仅当发送缓冲区中字符数小于该值的瞬间才产生OnComm事件,其后就不再产生OnComm事件。例如Sthreshold设置为3,仅当发送缓冲区中字符数从3降为2时,MSComm控件设置Commevent属性为ComEvSend,同时产生OnComm事件,如发送缓冲区中字符始终为2,则不会再产生OnComm事件。这就避免了发送缓冲区中数据未发送完就反复发生OnComm事件。CommEvent:这是一个非常重要的属性。该属性设计时无效,运行时只读。一旦串口发生通信事件或产生错误,依据产生的事件和错误,MSComm控件为CommEvent属性赋不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的

上位机VB实现与三菱PLC的串行通讯

上位机V B实现与三菱P L C的串行通讯 Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】

上位机V B实现与三菱P L C的串行通讯 2009年12月15日星期二下午07:40 1.通行原理与方法 上位机要能够通过PLC监控下层设备的状态,就要实现上位机与PLC间的通信,一般工业控制中都是采用RS232 C实现。上位机首先向PLC发送查询数据的指令(实际上是查询PLC中端子的状态和DM区的值等),PLC接收了上 位的指令后,进行校验(FCS校验码),看其是否正确,如果正确,则向上位机传送数据(包含首尾校验字节)。否 则,PLC拒绝向上位机传送数据。上位接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,否则, 拒绝接收。 由于CPM1A没有提供串行通信口,我们利用其提供的外设端口实现通信。PLC与计算机之间的 连接是通过OMRON提供的专用电缆CQM1-CIF01来实现的,其硬件连接图如图1所示。(见附图) 2.??PLC与计算机间的通信规约 计算机与PLC间的通信是以“帧”为单位进行的,并且在通信的过程中,计算机具有更高的优先级。首先,计算 机向PLC发出命令帧,然后,PLC作出响应,向计算机发送回响应帧。其中命令帧和响应帧的格式如下: (1)命令帧格式。为了方便计算机和PLC的通讯,CPM1A对在计算机连接通信中交换的命令和响应规定了相应的 格式。当计算机发送一个命令时,命令数据主准备格式如图2所示。(见附图) 其中@放在首位,表示以@开始,设备号为上位机识别所连接的PLC的设备号。识别码为命令代码,用来设置用户 希望上位机完成的操作,FCS为帧检验代码,一旦通信出错,通过计算FCS可以及时发现。结束符为“*”和CR 回车符,表示命令结束。 ???(2)响应帧格式。由PLC发出的对应于命令格式的响应帧格式如图3所示。(见附图) 其中,异常码可以确定计算机发送的命令是否正确执行。其它的与正文中的含义相同。正文仅在有读出数据时有 返回。 3.??通信程序的设计 为了充分利用计算机数据处理的强大功能,我们可以采用计算机有优先权的方式,在计算机上编写程序来实现计 算机与PLC的通信,计算机向PLC发出命令发起通信,PLC自动返回响应。本文中采用VB来编写计算机与PLC 间的通讯程序。在VB中提供了通信控件—应用通信控件(MSCOMM),实现通过串行端口传送和接受的功能。 下面介绍MSCOMM控件的属性: *CommPort:设定通信连接端口代号,程序必须指定所要使用的串行端口号,Windows系统使用所设定的端口与外 界通信。 *PortOpen:设定通信口状态,若为真,通信端口打开,否则关闭。 *Settings:设定通信口参数,其格式是"bbbb,p ??,d,s",其中bbbb为通信速率(波特率),p为通信检查方式(奇偶校验),??d???为数据位数,s为停止位数, 其设定应与PLC的设定一致。 *Input:将对方传送至输入缓冲区的字符读入到程序。 *Output:将字符写入输出缓冲区。 *InBufferCount:传回接收缓冲区中的字符数。 *OutBufferCount:传回输出缓冲区中的字符数。 *InputLen:设定串行端口读入字符串的长度。 *InputMode:设定接收数据的方式。 *Rthreshold:设定引发接收事件的字符数。 *CommEvent:传回OnComm事件发生时的数值码 *OnComm事件:无论是错误或事件发生,都会触发此事件。 (1)控件参数的初始化。 初始化程序如下: https://www.wendangku.net/doc/df3413961.html,Port=2'使用串口Com2 Mscomm.Settings="9600,E,7,2"'波特率9600,偶校验,7位数据位,2位停止位 Mscomm.PortOpen=True'打开通信端口,准备通信 (2)计算校验码FCS,计算FCS的VB自定义函数如下: FunctionFCS(ByValInputStrAsString)AsString DimSlen,i,XorresultAsInteger DimTempfesAsString

VB和台达PLC上位机通讯软件

为答谢各位网友的支持,也算是一个小小的礼物吧,特将我以VB写的一个工控通讯程序源码奉上,以资感谢. 这个程序是VB同台达PLC的通讯调试程序,其于台达系列PLC的MODBUS ASCII协议,涉及IO及寄存器的读写,稍加改动即可用于 工控项目中.我在写这个程序时,也参考了<<基于VB 的台达PLC和 监控计算机的串口通讯>>一文,在此也向作者表示感谢. Dim plc As Byte Dim y0flag As Byte Dim y1flag As Byte Dim str As String Dim n, S Private Sub Command1_Click() Dim strout As String Dim QQ As String Timer1.Enabled = False QQ = Text1.Text If Len(QQ) = 3 Then QQ = "0" & QQ ElseIf Len(QQ) = 2 Then QQ = "00" & QQ ElseIf Len(QQ) = 1 Then QQ = "000" & QQ End If str = "01061000" + QQ

LRCC = LRC(str) '计算str的lrc校验码。 strout = ":" + str + LRCC + Chr$(13) + Chr$(10) '欲传送之数据。13为D,1 0为A MSComm1.InBufferCount = 0 MSComm1.Output = strout Timer1.Enabled = True End Sub Private Sub Command2_Click() End Sub Private Sub Form_Load() Dim s1 As String Dim s2 As String Dim s22 As String Dim s3 As String Dim s4 As String Picture1.Move 0, 0, 5600, 280 '长度可随意改 Timer1.Enabled = True n = -(Me.TextWidth(Now)) - 10 MSComm1.PortOpen = True Timer1.Enabled = True s2 = "01010C300001" s22 = LRC(s2) s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10) MSComm1.InBufferCount = 0 MSComm1.Output = s1 TimeDelay (500) s3 = MSComm1.Input s4 = Mid$(s3, 8, 2) If s4 = "31" Then plc = 1 Else: If s4 = "30" Then plc = 0 End If If plc = 1 Then Label2.Caption = "PLC Running" Shape1.FillColor = RGB(0, 255, 0) 'green Else Label2.Caption = "PLC Stopped!" Shape1.FillColor = RGB(255, 0, 0) 'red End If End Sub Public Function LRC(str As String) As String c = 0

相关文档
相关文档 最新文档