基于vb实现plc与上位机通讯内容摘要:
(FBD)三种程序编辑器提供用户选择。 STEP7Micro/Win 的编程界面如图 : 图 程序编辑窗口 沈阳航空工业学院毕业设计(论文) 8 建立计算机与 S7200 的硬件连接 在本次毕业设计中首先要解决的就是上位机与 S7200 可编程控制器之间的连接, 然而它们之间是不能直接相连的, 要通过一条 PC/PPI电缆 才能实现 计算 机与西门子 S7200可编程控制器 之间的 连接 , 如图 : 图 PC机与 PLC的连接方式 当数据从 RS232C传到 RS485端口时, PPI电缆是发送模式。 当数据从 RS485端口传送到 RS232C口时,电缆是接 收 模式。 在编程软件中设置通信接口参数 我们在上位计算机上启动 STEP7Micro/Win 编程软件 , 选择菜单命令 “ 检视 ” “ 元件 ” “ 设置 PG/PC 接口 ” , 此时我们将看到 设置 “ PG/PC 接口 ” 对话框 如图 : 图 “设置 PG/PC接口 ”对话框 打开 “ 设置 PG/PC 接口 ” 对话框,在 “接口参数指定 ”列表中选择通信接口协议,沈阳航空工业学院毕业设计(论文) 9 如果 是 PPI多主站电缆,选择 “ PC/PPI cable(PPI)”。 然后选择 “ Properties” 钮,将出现接口属性对话框,检查有关属性,确保其正确。 PPI 标签中, “ Transmission Rate”的设置必须与 PC/PPI电缆上的设置相同( 或 ) 如图 : 图 PC/PPI电缆的 PPI参数设置 西门子 S7200可编程控制器与上位机的在线联系 在本次毕业设计中要按照严格的通信协议及通信参数进行 设定, 只有这样才能建立 上位机 与 西门子 S7200 CPU的在线联系。 1. 在 STEP7Micro/Win32下,单击通信图标,则会出现一个通信通道对话框 ,显示是否连接了 CPU主机 , 如图。 2. 双击通信 对话框中的刷新图标, STEP7Micro/ Win32 将检查所有连接的S7200 CPU主站,并建立一个 CPU的图标 , 如图。 3. 双击 CPU图标,在通信对话框中 显示所选的通信参数 如图 所示。 沈阳航空工业学院毕业设计(论文) 10 图 通信参数设置 图 通信设置 图 通信参数 沈阳航空工业学院毕业设计(论文) 11 本章 在 充分掌握 STEP7Micro/Win 的基础上 完成 了 对 S7200可编程控制器 通信参数 的 设置。 通过对 S7200 可编程控制器的学习, 建立 了上位机与S7200 可编程控制器之间的联系。 结合 在本次毕业设计中 调试通信 的 过程 , 给出 了图例 ,并 进行 详细的 讲解。 沈阳航空工业学院毕业设计(论文) 12 第 三 章 基于 VB 与 PLC 的 串口 通信研究 本章论述了 基于 VB 建立 上位机 与 PLC 之间的 串口 通信 问题,为了解决 二者之间的通信,此章节 从如何 使用 VB 开发串行通信到 PLC 采用何种方式与之相连这两个方面对其进行 了 说明。 串口通信的基本概念 终端与其他设备(如 其他终端、计算机和外部设备)通过数据传输进行通信。 数据传输可以通过两种方式进行,即并行通信和串行通信。 串口通信与并行通信 数据通讯中有两种类型的通信形 式,即并行通信( Parallel Communication)和串行通信( Serial Communication)。 例如,如果有 8位数据需要传送,那么并行通信一次就可以完成 8位的传输量;而串行一次只能传送 1位。 如图 表示了两种不同的通信模式,常用的串行通信也有两种,分别为 RS232和 RS485。 图 串行与并行传输的比较 RS232 的信号准位是参考地线而言的 , 如图。 相对于参考接地端 1 传沈阳航空工业学院毕业设计(论文) 13 输端传送数据;接收端则相对于参考接地端 2展现出 传送端的传送的数据。 图 RS232 串行通信示意图 RS485的信号被传送出去时会分成正负两条线路,当到达接收端后, 再 将信号相减还原成原来的信号如图 : 图 RS485串行通信示意图 通信参数 串行端口的通信方式是将字节拆分成一个接一个的位在传送出去。 接到此电位信号的一方再将此一个一个的位组合成原来的字节 , 如此形成一个 完整 的 字节传送。 在传送过程当中 , 双方明确传送信息的具体方式 , 否则双方就没有一套共同的译码方式 , 从而无法了解对方所 传 过来的信息意义。 因此双方为了进行通信 , 必须遵守一定的通信规则 , 这个规则就是通信端口的初始化,通信端口初始化必须对以下的几项参数进行设置 : 沈阳航空工业学院毕业设计(论文) 14 1. 数据的传输速度 串行通信的传输是 通信双方配备性能及通信线路的特性所左右 的 ,收、发双方必须按照同样的速率进行串行通信,即双方的传输速率。 2. 数据的传送单位 一般串行通信 端口所传送的数据是字符型 ; 用来传送文件,则会使用二进制的数据类型。 在不同的情况下, 使用的传送单位 不 同。 3. 起始位与停止位 由于异步串行通信传输 中并没有使用同步脉冲作基准,故接收端完全不知道传送端何时发送完 数据。 发送端准备要开始传送数据时, 就 会在所发送的字符前后分别加上高电位的起始位及低电位的停止位,即所谓的起始位与停止位。 4. 校验位 为了防止错误的发生, 使用校验位作为检查机制。 校验位又分为奇校验与偶校验,二者都是 校验传送数据正确性的一种核对码。 VB通信原理及界面设计 Visual Basic 之所以被广泛的应用是因为它具有以下优点 : 真正的 面向对象 型编程 ; 的 代码就可以达到设计要求; 提供 了 强大的控件功能,轻松的让你与其他的设备进行 通信。 VB 串口通信方式 Visual Basic 在串口开发程序主要有两种方法:一是利用 MSComm串口控件,二是调用 WINDOWS API函数。 在实践中,使用 Visual Basic 串口控件实现通信的方法比调用 API动态链接库的方法更加方便、快捷。 本文采用 MSComm串口控件进行与西门子 S7200可编程控制器进行串行通讯。 MSComm控件通过对串行 端口 的数据 传输和接收,为应用程序提供通信功能, 同时它 还 提供两种 通信处 理方式;事件驱动方式和查询方式,这两种事件处理方法都可以起到实现通信的 功能。 在 VB 编写 的集成环境中,选择 “工程 ”菜单中 “部件 ”子菜单,在弹出 “部件 ”对话框中,选中 “MicrosoftCommmControl ”复选框,点中之后出现一沈阳航空工业学院毕业设计(论文) 15 个 “电话 ”的图标如图 : 图 添加 MSComm串口控件 VB 串口通信程序的设计 Visual Basic 在开发可视 化监控系统方面有独特的优势,它 本身提供的串行端口控件 MSComm就是为了应用程序提供串行通信而设计的,在应用时只需要设置、监视 MSComm的控件属性和事件 即 可 完成对串行口的初始化和数据输入工作。 该通信程序的设计程序流程图 如图 : 图 程序流程图 沈阳航空工业学院毕业设计(论文) 16 1. MSComm串口控件的属性 如果要利用 MSComm串口控件进行通信,要了解 MSComm控件的属性的,该属性的功能如下 : CommPort设置并返回通信端口号。 设计端口号可设置从 116的任何数。 Settings 设置并返回波特率、奇偶校验、数据位长度、停止位长度。 Settings = string 它包含 4 部分的字符串,格式为:第一部分为波特率;第二部分为奇偶校 验;第三部分为数据位长度;第四部分为停止位长度。 PortOpen设置并返回通讯端口的状态,也可以打开和关闭通信端口。 Input从接收区返回和删除字符,该属性在运行时为只读。 Output向传送缓冲区写数据,要传送的数据可以是二进制文本。 CommEvent返回最近的通讯事件或错误。 只有通讯错误或事件发生时才会产生OnComm事件。 通过对上述属性进行设置 可以 实现 VB 与连接设备 之间的 串口通信。 2. 对 MSComm进行串口初始化 要对通信口进行初始化把初始化程序放在窗口装入事件 FormLoad( )中。 实现串口设置的初始化具体代码如下: Private Sub Form_Load( ) = 1 39。 设置通信端口号为 COM1 = 9600,n,8,1 39。 设置通信参数 = True 39。 打开串口 = 0 39。 接 收文本型数据 =200 MSComml. OutBufersite=200 End Sub 选定串行口 COM1,设定波特率为 9 600B/S,无奇偶校验,数据传输位为 8位, 1位停止位。 InputLen = 0表明输人时读取缓冲区的全部内容,根据发送和接收字符串的长度,设置输人、输出缓冲区大小。 沈阳航空工业学院毕业设计(论文) 17 3. 发送字符命令代码 设定一个命令按钮,将发送代码编辑到该命令按钮的 Click()事件当中 , 实现该功能的代码如下: Private Sub Cmdsend_Click() If = False Then = True 39。 打开通信口 = Trim() 39。 把字符通过串口发送出去 End Sub 如果该通信串口没有打开的话,应用一个 IF 语句把设定的串口打开,之后把所要发送的字符通过 的属性发送出去。 4. 接收字符命令代码 设定一个命令按钮,将发送的代码编辑到该命令按钮的 Click()事件中, 接收 PLC发送回来的字符。 Private Sub CmdReceive_Click() Dim buf$ = False buf = Trim() 39。 将缓冲区内的数据读入 buf变量中 If Len(buf) = 0 Then 39。 判断缓冲区内是否存在数据 = Else = buf End If End Sub Private Sub Cmdauto_Click() 39。 启动自动接收 = True End Sub Private Sub Timer1_Timer() 39。 接收数据 If 0 Then = + End If End Sub 沈阳航空工业学院毕业设计(论文) 18 通过上述程序初始化 MSComm 串口控件进行通信, 通过 发送 、接收指令 , 就可以在 上位机与 PLC之间建立通信连接 了。 VB 控制界面的程序设计 1. 登陆界面模块的设计 VB在可视化编程方面的功能是十分强大的,利用 VB在开发可视化监控系统方面有其独特的优势,它可以制作良好的人机操作界面。 本文为控制实验设置了两种登陆模式;一种是普通用户模式,当在登陆界面选择 “普通用户 ”时 ,不需要访问密码,按 “确定 ”按钮 会 直接 进入 “监控选择页面 ”;另一种则是管理员模式,当选择 “管理员用户 ”时,需要用户名及访问密码,当密码正确后才可以登录到 “监 控选择页面 ”, 如图 : 图 登录选择界面示意图 当选择 “普通用户 ”模式时,进入监控选择界面,此时测试通信 权限将被限制,即不能测试 是否与 PLC之间建立了通信渠道。 此时的通信参数及发送数据, 接收数等 设置都不能执行, 相应 按钮将呈现出 灰白色不能对其进行点击,如图 红线标注所示。 但可以在 “控制实验程序 ”中选择所要控制的实验,选中之后就可以进入到相应的操作监控界面。 当选择 “管理员用户 ”模式时,相对普通用户限制的权限将被开放,如图 红线所标注的,如回路测试、数据的发送、数据的接 收、通信参数 设置等。 同时发送给PLC 的数据可以在发送显示窗口及接收显示窗口上显示出来,这时可以随时测试通沈阳航空工业学院毕业设计(论文) 19 信回路的状态。 图 以 “普通用户 ”模式进入监控页面示意图 图 以 “管理员用户 ”模式进入监控页面示意图 该段程序部分代码如下: Private Sub Cmdok_Click() Select Case 39。 限制普通用户在监控选择界面的功能 Case 普通用户 沈阳航空工业学院毕业设计(论文) 20。基于vb实现plc与上位机通讯
相关推荐
调用此模块,要求用户先进行登陆。 登陆功能模块如图 所示。 试卷管理系统 系统管理 试卷生成管理 数据库管理 系统帮助 用户管理 密码管理 自动生成试卷 手动生成试卷 抽取现有试卷 数据库还原 数据库备份 系统关于 系统帮助 10 图 登陆模块功能图 (2) 试卷生成 管理 模块 试卷生成管理模块 主要包括 如下子模块 : 抽取现有试卷模块:显示预览试卷,保存答案,删除试卷功能。
连续计算功能的实现为了实现连续计算,需要将上次运算得到的结果保存起来,使用变量m_save保存,m_savey用来记录m_save中的值是否有效,当无效时读取的话,会弹出对话框提示注意:无保存数据。 当读取的时候,如果未输入第一个操作数,则将读取的数作为第一个操作数使用;如果已经输入了第一个操作数,而未输入第二个操作数,则将读取的数作为第二个操作数使用;如果第一、第二个操作数都已经输入
jsfs char 10 结算方式 ypbh char 10 药品编号 ypmc char 20 药品名称 ckmc char 20 仓库名称 jc char 10 简 称 jx char 20 剂 型 hw char 20 货 位 cd char 4J0 产 地 gg char 20 规 格 bz char 20 包 装 dw char lO 单 位 sb char 20 商 标 pzwh
可缺少的组成单元。 在使用者看来 ,不必要详细分析 CPU 的内部电路 ,但对各部分的工作机制还是应有足够的理解。 CPU 的控制器控制 CPU 工作 ,由它读取指令、解释指令及执行指令。 但工作节奏由震荡信号控制。 运算器用于进行数字或逻辑运算 ,在控制器指挥下工作。 寄存器参与运算 ,并存储运算的中间结果 ,它也是在控制器指挥下工作。 CPU 速度和内存容量是 PLC 的重要参数
当数 Intel公司的 MCS— 51系列。 MCS— 51 系列是在 MCS— 48 系列的基础上于 80 年代发展起来的,虽然它仍然是 8 位单片机,但其功能较 MCS— 48 有很大的增强。 此外,它还具有品种全,兼容性强,软硬件资源丰富的特点,因此应用较为广泛,成为继 MCS— 48 之后最重要的单片机品种。 直到现在, MCS— 51仍不失为一种单片机是主流芯片。 在 8位单片机之后,
机外围电路见图 ,本图中未再画出)。 123IC3A74ALS00456IC3B74ALS00IN026msb21212220IN12723192418IN2282582615IN312714lsb2817IN42EOC7IN53ADDA25IN64ADDB24ADDC23IN75ALE22ref()16ENABLE9START6ref(+)12CLOCK10U5ADC0809NC1A122A73