plc vb c语言编程,【实例】VB实现plc与上位机通讯应用程序
有关VB实现的plc与上位机通讯应用程序,包括通信初始化程序,通信控件MSComm1属性设置,从PLC读取资料,将寄存器内数据资料PC上显示观察监控等,一起来看看。
VB实现plc与上位机通讯应用程序
可编程控制器PLC与上位机PC之间通信,下位机为PLC,基于其可靠性极高,主要承担控制功能,而上位PC机主要承担监察管理功能,兼备部分控制功能,如发出运行,停止命令。
VB语言是基于WINDOWS操作系统功能强、易学易用、主面向学习对象程序设计语言。
VB带有专门管理串行通讯MSComm控件,只需设置几个主要参数就可以实现PLC与PC串行通讯。要完成通信必须设置MSComm相关属性值:
(1)CommPort:设置或传回通信连接端口代号
(2)Settings:设置初始化参数。以字符串形式设置或传回连接速度、奇偶校验、数据位、停止位等4个参数
(3)PortOpen:设置或传回通信连接端口状态
(4)Input:从输入寄存器传 回并移除字符
(5)Output:将一个字符串写入输出寄存器
(6)InputLen:指定由串行端口读入字符串长度
(7)InBufferCount:传回接收寄存器中字符数
软硬件之间:
台安TP02与上位机PC通信时,实现两者通信需要配备通信线。
4、通信程序实现
4.1 通信初始化程序
首先,窗体开始设计之前,添加MSComm控件。
4.2程序编写:
4.2.1 通信控件MSComm1属性设置:
MSComm1.CommPort = 1 设置端口号
MSComm1.Settings = "19200,E,7,2" 设置通信参数
MSComm1.InputLen = 0 设置读入字符串长度
MSComm1.PortOpen = True 设置通信端口状态
4.2.2 PLC运行程序:
STX$ = "::"
TransmitBuf$ = "01?5RUN"
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 12
In1$ = MSComm1.Input
4.2.3 从PLC读取资料,将寄存器内数据资料PC上显示观察监控(反应时间50ms):
STX$ = "::"
transmitBuf$ = "01?5MRVD000102"
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 20
InData$ = MSComm1.Input
Label2.Caption = Mid$(InData$, 10, 4)
Label3.Caption = Mid$(InData$, 14, 4)
4.2.4从PLC读取资料,将RelayC0001状态PC显示进行监控(反应时间50ms):
STX$ = "::"
transmitBuf$ = "01?5MCRC0001"
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 13
In4$ = MSComm1.Input
Coil$ = Mid$(In4$, 10, 1)
C1% = CInt(Coil$)
Label6.Caption = C1%
4.2.5 设定Relay状态,将Relay设定为ON(反应时间50ms):
Dim C1 As Integer
STX$ = "::"
transmitBuf$ = "01?5SCSY00011"
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 12
In2$ = MSComm1.Input
4.2.6 PLC停止运行:
STX$ = "::"
transmitBuf$ = "01?5STP"
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 12
In3$ = MSComm1.Input
4.2.7 VB6.0下CheckSum函数代码如下:
Private Function CheckSum(transmitBuf$)
L = Len(transmitBuf$)
Add = 0
Dim k, sum As Integer
For k = 1 To L
TJ$ = Mid$(transmitBuf$, k, 1)
Add = Add + Asc(TJ$)
Next k
Do While Add >= 256
Add = Add - 256
Loop
Add = 255 - Add + 1
tempBuf$ = Hex$(Add)
CheckSum = LTrim(tempBuf$)
End Function
plc vb c语言编程,【实例】VB实现plc与上位机通讯应用程序相关推荐
- 0c400汇编语言地址,在S7300/400型PLC中使用高级语言编程实例
在S7300/400型PLC中使用高级语言编程实例 S7-SCL是一种类似于Pasical.Deliphi的高级编程语言,其符合国际标准IEC 61131-3,也就是说支持该标准的任意厂家的PLC均可 ...
- c语言二级编程实例,二级c语言编程 -实例
二级c语言编程 -实例 编程实例1. 题目:有 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都 是多少? 1.程序分析:可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的 ...
- c语言编程 目录,C语言编程实例简介,目录书摘
内容简介: <C语言编程实例>将蓝牙小车作为教学组织引领,开展各章节.模块的教学,在教学的过程中把C语言编程.VC++软件操作.单片机外围电路搭建与调试.CAD机械制图.激光切割零件制作等 ...
- vhdl计算机语言,vhdl语言编程实例.doc
vhdl语言编程实例 实现各种逻辑功能: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENT ...
- plc通信程序 c语言,plc用什么语言编程?plc可以用c语言编程吗
plc用什么语言编程?plc可以用c语言编程吗 plc能用C语言编程吗? 不能 每个PLC都有自己的编程语言但用法基本上和C语言差不多PLC编程不是单一的 有很多种方法 我一般是梯形图,也有语句法就是 ...
- c++ c语言编程实例
c++ c语言编程实例 2,求和 #include using namespace std; int main( { int a=2,b=0,n; cout<<"输入一个数:&q ...
- c语言编程实例下载,C语言编程实例.doc
C语言编程实例.doc 第 3 章 请 你参考前请修改下,或者至少看明白, 2 include "string.h" include "stdio.h" mai ...
- LabVIEW上位机学习 面对对象编程实例项目源码 与下位机PLC
LabVIEW上位机学习 面对对象编程实例项目源码 与下位机PLC,工厂MES通讯,数据库,NI vision视觉等开发,及操作者框架源码可运行,想学习面对对象的可以参考 ID:16199647294 ...
- MongoDB的C语言编程实例
下面讲述在Linux平台下MongoDB的C语言编程实例 假设已经安装好了MongoDB. 1. 下载MongoDB的C语言驱动并安装 这里下载的MongoDB的C语言驱动是 mongo-c-d ...
- 西门子1200程序V15版本实例,设备已经运行生产,博图V15以上可打开 包含上位机通讯,modbus485
西门子1200程序V15版本实例,设备已经运行生产,博图V15以上可打开 包含上位机通讯,modbus485,伺服等 西门子1214C控制4台步进电机: 西门子1214C与4台MS300变频器modb ...
最新文章
- sql delete删除的数据怎么恢复_如何恢复按下Shift + DELETE键永久删除的文件和资料夹?...
- Apache Mina2.x网络通信框架使用入门
- 工艺流程计算机仿真设计,450kt/a合成氨反应器及生产过程计算机仿真设计
- optimize table优化mysql例子
- 关于JS中for循环时,作用域问题和this指针指向的总结
- ios 获取沙盒文件名_IOS获取各种文件目录路径的方法
- Win7 maven安装及配置
- Android取手机号码
- 处理CoreAVC Professional Edition 错误的方法
- 【算法】非线性动力学混沌、分岔图、最大李雅普诺夫指数等
- 数据库和网页之间的数据交互
- centos7 vim查找_如何在 Vim/Vi 中快速查找和替换文本内容
- 生日蛋糕(noi99)
- vs2019生成的exe文件在别人电脑运行不了
- Windows10企业版 VS2017编译 MongoDB C++ Driver3.1.1 全过程
- 从打游戏的显卡,到科学先锋,一篇文章读懂异构计算
- 【spring-boot】Could not find result map ‘com.springboot.cib_hk.bean.Users‘ referenced from ‘co...
- 微信小程序上拉刷新下拉加载
- 嵌入式文件系统基础知识
- CSDN博客常用写作技巧
热门文章
- MATLAB破解版解决帮助文档需要许可证的问题
- 身份证识别 python + OCR
- python win32api教程_解放双手——python win32api 入门
- 虚拟机安装Ubuntu解决自带Firefox浏览器不能看视频,提示无Flash插件问题!安装flash!
- 大学计算机vb基础知识6,计算机基础课-VB6选择题汇编(2011-2016)
- 【数字设计】诺瓦科技_笔试面试题目分享
- 【安装教程】 【Visio2019】(附带安装包下载)
- 工业机器人技术基础及其应用总结
- 悄悄告诉你如何快速突破大厂逻辑题
- 微信公众号扫码登录(一)—— 获取微信公众号二维码