vb与plc通讯(以西门子S7-200为例)
plc网口vb 通讯
plc网口vb 通讯PLC网口VB通讯——实现智能化生产控制的利器随着工业自动化的快速发展,PLC(Programmable Logic Controller,可编程逻辑控制器)已经成为现代生产线上不可或缺的设备之一。
而要使PLC实现与计算机的通讯,以实现更高级别的控制和监测功能,则需要借助VB(Visual Basic)编程语言。
本文将介绍PLC网口VB通讯的基本原理以及其在实际应用中发挥的重要作用。
一、PLC网口VB通讯基本原理PLC网口VB通讯主要是通过以太网接口实现的。
PLC通过网口与上位机进行通信,由VB程序控制上位机与PLC之间的数据交换。
具体而言,PLC网口VB通讯需要解决以下几个关键问题:1. 协议选择:PLC通常支持多种通信协议,例如MODBUS、OPC等。
在选择协议时需要根据具体应用场景和PLC型号进行判断,并根据协议规范进行编程。
2. IP地址设置:为了确保上位机与PLC能够互相识别和连接,需要为PLC和上位机分配合适的IP地址,并设置子网掩码和默认网关等网络参数。
3. 数据格式与交换:在PLC网口VB通讯中,数据格式的定义和交换非常关键。
通常情况下,可以利用VB编程实现数据的读取、写入和解析,以实现与PLC之间的数据交互。
二、PLC网口VB通讯的实际应用PLC网口VB通讯在许多领域都得到了广泛的应用,为企业的生产控制和监测提供了可行的解决方案。
下面以几个实际案例进行介绍:1. 智能制造:在智能制造领域,PLC网口VB通讯可以实现生产流程的高度自动化和集成化管理。
通过与上位机的通讯,PLC 可以接收指令进行实时控制,并将生产数据反馈给上位机,以便进行数据分析和优化。
2. 物流仓储:在物流仓储领域,PLC网口VB通讯可以实现仓库的自动化控制和货物追踪。
利用上位机与PLC进行通讯,可以实时监测仓库存货情况,并对货物进行分类、分拣和入库等操作。
3. 能源管理:在能源管理领域,PLC网口VB通讯可以实现对能源设备的监控和控制。
基于VB6.0的S7-200系列PLC与PC机通信实现
设备联 网,如上位计算机 、 打印机 , 变频器等 。 西 门子 s 2 0 L 7— 0 P C的 自由口通 讯是建 立在半双 工 R s一 4 5硬件基础 上的一种通讯方式 , 8 P c机 的标准 串 口为 R 2 2 两者 通信 时必 须进 行信 号 电 S3 , 平转换 , 门子公司提供 的 P / 西 C PP I电缆 带有 R 2 2 R ¥8 S 3/ 45 电平转换 器 , P / P 电缆一端 是 R 4 5 由于连 接 P C 即 CPI S一 8 , L。 另一端是 R 2 2 由于连接计算机实现 P C与 P S3 , L C机 的C机硬件连接 图
3 P C 端 的通 讯程序 实 现 L
P C的 C U处 于 S O L P T P模式时 ,自由口通讯被禁止 , 只有 当 C U处于 R N模式时 , P U 才可使用 自由 口通讯 。P C程序分 L
1 现 场硬 件配 置
在现场 中 P C的 C U模 块 为 25, 展模块 包括 E 2 1 L P 1 扩 M 2 (D ) E 2 ( D , M 3 ( A +I O) 另外 还有 一 台 P 8 I ,M2 2 8 O) E 2 5 3 I A , C 机。现场 油的压力 信号 经 E 3 M25送入 P C, 与 给定 压力 比 L 在 较后 , 进行控 制 , 当压 力超 出高 、 低报 警 限时系统 采用 声光 形
实现恒压泵油整个系统所有设备的运行由一台s7200系列plc进行控制虽然西f1t公司生产的7200系列小型plc具有功能强性价比高使用稳定等特点在国内的工业控制领域占有了相当大的比例但也有其不足之处plc仅能完成现场数据的采集而不能给用户提供良好的通信界面不便于进行远程的实时监控
浅谈S7-200 PLC与VB之间的串行通信研究
[ 关键 词] L V 串口通信 PC B 中闰分类 号:T 9 文献标 识码 :A 文章编号 :1 7 - 7 9 2 1 )0 2 0 3 1 N1 6 1 5 7( 0 0 1 0 1 一O
0引 膏
或接 收 ( nu )属 性 ;⑦ 使 用完M c m对 象后 ,将通 信端 口关 闭 。 Ip t so 3通信 程 序实 例 本例 采 用 主 从通 信 方 式 ,计 算机 为主 机 ,可 以主动 向Pc 出报 文 , L发 后者 进 行异 或 校验 。若校 验 正确 ,返 回接 收到 的 数据 ,若校 验 后发 现有 传 输错 误 ,将 校 验错 误 指示 位 Q .置 1 1O 。在 例 子中 使用 RV C 指令 和接 受 完成 中 断接 收数 据 。 PC L 端通 信 程序 :M N A I
在工 程控 制 领域 中 ,德 国西 门子 (im n )公 司 的系 列P C 相 关软 S ee s L及 件 具有 功 能 强 、 速度 快 、扩 展 灵 活 等 优 点 ,但 数 据 的计 算 和 管 理 功 能较 弱 。V ( iu lB sc B V sa ai )是 美 国M c oo t irS f 公司推 出的一 款流 行且 功 能强大 的面 向对象 高级 语 言开 发 工具 ,越 来越 多的 实 际过 程控 制 项 目将使 用 V 开 B 发的 监控 、管 理软 件与 西 门子PC 结合 ,这就使 得 两者 之 间通信 方式 的选 L相 择及 配 置 变得 十 分 重 要 。基 于 此 ,本 文 以西 门 子s —0 系 列P C 例 ,对 7 30 L为 v程 序与 西 门子系 列PC 其相 关 软件之 间 的通 讯方 式进 行研 究 ,以期 将二 B L及 者有 机 的结合起 来 ,更好 的 满足 工程 实践 的需 要 。 1V 程 序与 西门 予P c司 信 方式 B L I通
西门子PLC之间的通讯
西门子PLC之间的通讯是怎么完成的S7-200通信最经济的方式就是采用PPI协议和自由口通信协议。
对于S7-200之间进行通信,PPI协议又更适合——它比自由口通信的编程更简单!下面就对这个PPI通信进行说明——以2台S7-200通信为例,做一个实例。
设备配置:1台S7-200 CPU 226CN的PLC、 1台S7-200 CPU 224XP的PLC硬件连接:原则上需要配备1条紫色的Profibus电缆、2个黑色的Profibus-DP接头。
如果需要在PLC通信时对所有在线的PLC进行监控/编程操作而不占用另外的通信口(也就是说,假如所有PLC用端口PROT1进行PPI通信,而现在要对所有PLC依次编程/监控,但又不想占用这些PLC的端口PROT0——端口PROT0可能已作它用),那么必须在其中1台PLC采用带编程口的Profibus-DP接头。
所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。
这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。
引脚分配:........S7--200 CPU上的通讯端口是符合欧洲标准EN 50170中PROFIBUS 标准的RS--485兼容9针D型连接器。
下表列出了为通讯端口提供物理连接的连接器,并描述了通讯端口的针脚分配。
下面是S7-200的通信接口——D型9孔母头的引脚定义。
网络电缆的偏压电阻和终端电阻为了能够把多个设备很容易地连接到网络中,西门子公司提供两种网络连接器:一种标准网络连接器(引脚分配如表7-7所示)和一种带编程接口的连接器,后者允许您在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI 设备到网络中。
带编程接口的连接器将S7--200的所有信号(包括电源引脚)传到编程接口。
这种连接器对于那些从S7--200取电源的设备(例如TD200)尤为有用。
两种连接器都有两组螺钉连接端子,可以用来连接输入连接电缆和输出连接电缆。
VB与PLC通讯
VB与PLC之间通讯VB与AB PLC之间通讯AB系列PLC一般都有专用驱动程序用于实现PLC和计算机之间通讯,如RSLINX 就是专门用于做这项工作,但使用RSLINX也具有一定局限性,这里提供一个使用VB编程实现PLC和计算机之间通讯程序,使用协议是DF1,可以支持Micrologix、SLC500等系列PLC。
使用代码如下:Option ExplicitDim tns%, comunicatingPrivate Sub Command1_Click()ReDim tb%(10)Dim stIf ReadTable(0, tb%()) ThenFor st = 0 To 9 '显示结果Text1.SelText = Str(tb%(st)) + Chr(32)Next stText1.SelText = Chr(13) + Chr(10)End IfEnd SubPrivate Sub Command2_Click()ReDim tm%(5)tm%(0) = Rnd * 32768tm%(1) = Rnd * 32768tm%(2) = Rnd * 32768tm%(3) = Rnd * 32768tm%(4) = Rnd * 32768If Not WriteTable(4, tm%()) Then Text1.SelText = "写入错误!!" End SubPrivate Sub Exit_Click()Unload MeEndEnd SubPrivate Sub Form_Load()Comm1.PortOpen = TrueEnd SubPrivate Sub Form_Unload(Cancel As Integer)Comm1.PortOpen = FalseEnd SubPrivate Sub CalcCRC(mes$)Dim byt%, res&'对消息进行crc校验,然后将结果添加到消息结尾。
怎样才能让VB和PLC相互通讯传输数据
性)按钮,打开属性对话框。将“MPI”栏中的“TransmissionRate”(波特率)设置为187.5 kbit/s,其他参数可以采用默认设置。在“Local Connection”选项卡“COM Port”选择框中设置实际使用的Pc串口的编号,波特率可以设置为19.2 kbit/s
2.用OPC Server软件实现通信连接
西门子的PLC,除了用组态软件可以和PLC通讯外,也可以用VB和它通讯,但是必须利用西门子公司发布的PRODAVE软件包(其实就是一个库函数包).PRODAVE提供了大量函数,我门可以利用这些函数解决PLC与PC的数据交换和处理.当然这些函数是可以在VB中调用的,只要在模块里声明一下就可以了. 给你举两个简单例子: load tool.这个用来将计算机与PLC连接起来, unload tool.是用来断开连接的. a_field_read(a,b,c).这个可以从PLC读取数据到计算机 a_field_write(a,b,c).用来写数据到PLC. 就举这么四个典型例子,看起来似乎挺简单,其实还有好多好多问题需要解决,比如从PLC不同的数据存储区读取数据所用的函数不同.还有初始的参数设置,地址设置,读写函数的参数设置,即使参数都设置对了,如何判断连接上否,即使连上了如何判断,数据读写有没有错误,有了错误如何判断是哪种错误.所以,也许你能看出,PLC和PRODAVE的知识在编写中的关键性并不低于VB. 一般都是用PLC的串口编一个协议,然后利用VB里面的通讯控件进行通讯的。例如omron是用hostlink来做的。三菱一般是用RS指令,松下是用trns来做的。
vb与plc通讯(以西门子S7-200为例)
vb与plc通讯(以西门子S7-200为例)S7-200 PLC之PPI协议通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC 编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENSS7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计系统中测控任务由SIEMENSS7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
基于VB6的S7-200PLC与计算机的通讯设计
基于VB6.0的S7-200PLC与计算机的通讯设计1 引言[1]plc 作为一种稳定可靠的控制器在工业控制系统得到了广泛的应用[1]。
但是由于中小型plc 的人机接口功能不很完善,不能提供给用户一个友好的交互界面,因此妨碍了对现场运行过程的跟踪与监控[2~5]。
目前一些通用的组态软件,以其功能强大、界面友好、开发简洁等优点在计算机监控领域已经得到了广泛的应用,但是一般价格比较昂贵[6~7]。
visual basic6.0 在开发可视化环境下的监控系统时具有其独特的优势,它本身提供的mscomm控件就是为应用程序提供串口通讯而设计的,它屏蔽了通讯过程中的底层操作,只需设置、监视mscomm控件的属性和事件即可完成对串行口的初始化和数据输入输出[8~10]。
西门子s7-200plc由于其体积小,可靠性高,通讯功能强大等特点,在工业控制领域得到广泛的应用。
s7-200系列plc的通讯方式主要有三种:ppi方式、profibus-dp方式、freeport(自由口)方式。
其中自由口方式是由用户自己定义通讯协议,具有与外围设备通讯方便、自由,易于计算机控制软件的开发等特点,因此使用自由口通讯方式实现plc与上位机通信的控制方案较多[11~14]。
本文采用s7-200plc的自由口通讯协议,基于vb6.0开发了一种简单实用且易于功能扩展的监控界面,其中计算机作为上位机,通过mscomm控件建立与下位机plc的通讯,可以实现数字量和模拟量读写、存储及模拟量趋势曲线绘制。
2 通讯原理在上位机中,通过vb6.0中的mscomm控件完成数据的发送与接收;在下位机中则是通过plc的指令完成数据的发送与接收的。
2.1 通讯初始化设置由于s7-200plc与计算机的自由口通讯是串行通讯,故通讯前需要通讯双方的串行端口初始化,使双方通讯参数保持一致。
(1) 上位机初始化设置上位机使用mscomm控件通过串行端口发送和接收数据,因此首先要对mscomm控件进行初始化设置,主要始化设置如下:mport=1 `设定通讯端口号mscomm1.portopen=true `通讯端口打开mscomm1.settings="9600,n,8,1"mscomm1.inputmode=1settings:以字符串的形式设置并返回波特率、奇偶校验位、数据位和停止位。
VB与PLC通讯示例
2. 啤酒稀释的人机操作界面:
人机操作主要用来输入啤酒浓度数据、操作命令,直观显示各种流量数据并记录偏差曲线,界面图如下:
3. 硬件配置
本例子中上位机PC选用联想奔腾Ⅱ品牌机,外加RS232转RS485通讯转换卡。下位机PLC选用三菱FX2N-16MR,另加模拟输入模块FX2N-2AD 和模拟输出模块FX2N-2DA各一块,外加一个485串口通讯模块PC-485BD。
表格中粗体字为需要求和效验的部分;
和效验为每一项的ASCII值的总和转换成十六进制后,取其低两位;
站号、PLC号、元件数量、和效验都是以十六进制表示;
等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH。
1) 批量读出位元件—BR指令格式
1 2 3 4 5 6 7 8 15 16 17
PC侧: ENQ 站号 PLC号 BR 延时 首地址 数量 和校验 ACK 站号 PLC号
PLC侧: STX 站号 PLC号 数据 EXT 和校验
9 10 11 12 13 14
2) 计算出加水量的百分比 [(B-A) / A]*100% ;
3) 根据此百分比和高浓酒的瞬时流量,计算出脱氧水要达到的流量;
4) 比较水的瞬时流量和计算出的流源自,来控制水调节阀的开度,使水瞬时流量等于计算流量。
由于酒和水的瞬时流量是变化的,所以3)、4)步要反复进行。以上所有的计算功能和PID调节功能都由PLC完成。
cha = Val("&H" & iNum) * 4 ''数据寄存器的值为十六进制表示,占4个字符
Case "M", "X", "Y" ''查询继电器触电的值
VB如何通过西门子OPC通讯方式连接S7-PLC
SetMyOPCServer=NewOPCServer
MyOPCServer.Connect"OPC.SimaticNET"‘连接SIMATICNET的OPC服务器
(2)添加OPC组对象
SetMyOPCGroup="MyOPCServer".OPCGroups.Add("Group1")
‘添加OPC组对象
MyOPCGroup.IsSubscribed=True
‘设置该组数据为后台刷新
MyOPCGroup.IsActive=True
‘设置该组为激活状态
MyOPCGroup.UpdateRate=1000
connection_1)。双击此连接,即可出现有可能被访问的对象树(objectstree),在PLC
CPU中已存在的DB块也会出现
以上完成的OPCSERVER部分的配置。
四、四、用VB编写了OPC客户端应用程序。主要程序代码如下:
(1)连接OPC服务器
DimWithEventsMyOPCServerAsOPCServer‘定义服务器对象变量MyOPCServer
SimaticNet”在随之弹出的“ADDGroup”对话框中输入组名,本例命名为“OPC”。
点击OK确认;
;双击已添加的连接组(OPC),即弹出“OPCNavigator”对话框,此窗口中显示
所有的连接协议。双击“S7&示(S7
基于VB环境的计算机与S7-200型PLC之间串行通信的研究
2 . 2 系统 结构
P L C和 控 制 电器 装 在 同一 控 制箱 内 , 传 感 器 输 入信 号 、 控
MS C o mm1 . R T h r e s h o l d = 1 , 收到一个字符就触发事件 ;
MS C o mm1 . I n p u t Mo d e = l , 以 二进 制 方 式 取 得 数 据 ; MS C o mm1 . S e t t i n g s =” 9 6 0 0 , n , 8 , 1” , 9 6 0 0为 串行 通 信 波 特 率, 必须与 P L C 的波 特 率 相 同 , 否 则 接 收 信 息 会 出错 。 其 发 送接 收 的代 码 为 : B u f e r ¥ = MS C o mm1 . I n p u t , 接收数据 ; MS C o mm1 . O u t p u t =B u f f e r , 发送数据; 由于 篇 幅所 限 , 以上 只给 出 了最 主 要 的 属 性及 代 码 。
( 东北石 油大学秦皇 岛分校 , 河北 秦皇岛 0 6 6 0 0 4 )
摘要: 以某单位 的太阳能热水站的改造 工程 为例 , 研究基于 V B环境的计算机 与 s 7 — 2 0 0型 P L C之 间串行 通信 的应用方
案, 重点在于研究 P P I 通信协议 , 根据协议 实现计算机与 P L C之 间的串行通信。 关键词: V B; 串行通信; P P I 协议 ; P L C 中图分类号: T N9 1 文献标识码 : A 文章编号: 1 6 7 3 — 1 1 3 1 ( 2 0 1 3 ) 0 5 — 0 0 9 0 — 0 2
之 间遵 循 相 同 的通 信 协 议— — P P I 协议 。
vb与plc通讯
vb与plc通讯(以西门子S7-200为例)S7-200 PLC之PPI协议通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC 编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENSS7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计系统中测控任务由SIEMENSS7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
第11章 VB与西门子S7-200PLC的通信 《VB基础与RS-232C通信技术》课件
目 标 地 址
源 地 址
功 协远冗冗协 能 议程余余议 码 识控识识数 06 别 制 别 别 据
单 元 参 考
参
数数
数 参数 据 据
长 长度 长 长
度
度度
字节 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
代码
DU FCS ED
含义
04 读 05 写
变 量 地 址 数
SD SA DA FC FCS ED
11.3.4 其他命令格式
运行命令RUN
停止命令STOP
强制置位/复位 取消强制位
1. PPI通信
PPI(Point to Point)通信协议是西门子专为S7-200系列 PLC开发的一个通信协议。可通过普通的两芯屏蔽双绞线 电缆进行联网,波特率为9.6kbit/s、19.2kbit/s、 187.5kbit/s。PPI通信协议采用主从式的通信方式。通过原 来自身的端口(PORT0或PORT1)就可以实现通信,是 S7-200CPU默认的通信方式。
14
2 LER 重复 长度
15
3 SD 开始 符 16
4 DA 目标 地址 17
5 SA 源地 址 18
6 7 8 9 10 11 12
FC
功能 码 07
协议 识别
远程 控制冗余 识别冗余 识别源自协议 数据单元 参考
19 20 21 22 23 24 25
参数 长度
参数 长度
数据 长度
数据 长度
05写
VB基础与RS-232通信技术
柏逢明 卫昱含
第11章 VB与西门子S7-200 PLC的通信
11.1 概述 11.2 西门子S7-200 PLC的通信过程 11.3 通信数据报文格式
VB6.0下PC对西门子S7-200 PLC的输出控制
0 引言可编程逻辑控制器(PLC)具有可靠性高、适应性好、抗干扰能力强等优点,计算机(PC)具有人机界面好,编程软件丰富,数据处理、存储方便等优点。
在工业控制中,通常采用计算机(PC)作为上位机,可编程逻辑控制器(PLC)为下位机的联机控制模式,结合PLC与PC各自的优点,提高控制能力和可靠性,操作方便且价格低,在工业控制中广泛采用。
本文以电机启动/停止为例,利用VB程序设计语言自主设计上位机软件,利用PLC通信功能,实现PC对西门子S7-200 PLC的输出控制,进而控制电机的启停。
1 硬件构成整套联机控制硬件由PC、串口通讯电缆、西门子S7-200系列的可编程逻辑控制器(PLC)组成,PLC带有一个或两个串行通信口,符合标准的RS485兼容9针型接口。
通讯电缆采用USB2.0 TO RS485 FOR S7-200 PLC电缆,USB端连接到编程计算机的通讯口(如COM3)上,另一端连接到西门子S7-200PLC的端口0或者1上。
编程计算机安装相应的电缆驱动程序以便通讯电缆正常工作。
2 PLC软件通讯设置S7-200 PLC编程软件STEP-Micro/WIN指令库通过包括预组态的子程序和专门设计用于Modbus通讯的中断例行程序,使与Modbus主站和从站设备的通讯变的更简单。
Modbus 协议指令可以将S7-200组态作为Modbus RTU从站设备工作,可与Modbus主站设备进行通讯。
Modbus从站库仅支持端口0通讯。
2.1 基于Modbus RTU从站协议的通讯如图1所示是使用Modbus从站协议通讯的PLC程序。
图1 使用Modbus从站协议通讯的PLC程序MBUS_INIT指令用于启用、初始化或禁用Modbus通讯。
在首次扫描扫描时用SM0.1的常开触点调用MBUS_INIT指令,对Modbus通讯初始化。
输入参数Mode(模式)输入值为1,将端口0分配给Modbus协议,并启用该协议;参数Baud将波特率设为9600;参数Parity设置校验,该值设置为0,即无校验;MBUS_INIT指令如果被成功地执行,输出位Done(完成)为ON;Error(错误)输出字节包含指令执行后的错误代码,为0表示没有错误;Addr(地址)用于设置从站地址,设为12;Delay(延时)参数设置为0无延时;MaxIQ是Modbus主设备可以访问的I和Q的点数,设置为128;MaxAI是主设备可以访问的模拟量输入字个数,设为7;MaxHold是主设备可以访问的保存寄存器(V存储器字)的最大个数,设为100;HoldStart是V存储区内保持寄存器的起而Modbus地址与S7-200地址的映射关系【1】为:Modbus 地址“00001~00128”对应S7-200的地址“Q0.0~Q15.7”。
vb与plc通讯(以西门子S7-200为例)
vb与plc通讯(以西门子S7-200为例)S7-200 PLC之PPI协议通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC 编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENSS7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计系统中测控任务由SIEMENSS7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
VB与S7-200通讯
本文以下内容为采用VB6.0设计人机界面的工业控制计算机与S7-200 PLC 自由口通信进行的方法。
常规的通过PC机,利用PLC对工艺对象的控制,大多都是在具有组态软件或通讯模块的情况下进行,但是对于一些小型的控制系统而言,由于受到简单实用和成本低的原则限制,不适合使用常规方法。
利用Visual Basic结合PLC中的通信语言进行编程,实现上位机与PLC之间,在无通讯模块情况下的数据信息的双向通信传输。
SIMATIC S7-200内部集成的PPI接口物理特性为RS485,可在多种模式下工作,其中自由口通信方式是S7-200PLC的一个很有特色的功能,它可以与任何协议公开的其它设备、控制器等进行通信。
上位机串口符合RS-232C标准协议,为了实现两者的通信必须进行协议转换,可以利用PC/PPI电缆连接两者,并同时完成协议转换的任务。
控制系统组成基于VB和PLC的液压试验台监控系统结构如下图所示,主要由上位机监控系统和下位机控制系统组成。
VB6. 0提供了串行端口通信控件MSComm,该控件封装了通信过程的底层操作,用户只需设置MSComm控件的属性和对相应的事件进行编程,即可完成串行通信功能。
MSComm控件提供了事件驱动和查询2种处理通信的方法,其中事件驱动方法通过设置CommEvent、Rthreshold等属性实现对MSComm控件的OnComm 事件驱动;查询方法则通常通过OutPut属性直接写输出缓冲区,且通过InPut 属性直接读输入缓冲区实现。
因为事件驱动方法程序响应及时、可靠性高,所以本系统采用事件驱动方法实现工控机与PLC之间的串行通信。
1.S7-200PLC的自由口通信西门子S7-200系列PLC的CPU支持多样的通信协议,如PPI接口协议、MPI协议、Profibus协议、自由口通信协议等。
其中自由口通信是S7-200 PLC 的一个很有特色的功能,它使S7-200 PLC可以与任何具有串行接口和通信协议公开的智能设备(如变频器、单片机和Modem等)通信,使通信范围扩大、控制系统配置更加灵活。
VB与PLC的通信
利用VB6.0 实现PC 与三菱PLC 的通信本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用编程电缆作为计算机与 PLC 通信的连线。
FX2系列PLC的编程接口采用RS-422标准,而计算机的串行口采用的是RS-232标准,因此作为实现PLC与计算机通信的接口模块FX-232AW,必须将RS-422标准转换成RS-232标准,同时在实现上述过程中采用光电隔离技术。
图1一、串口的相关知识1)串行通信的概念图2所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。
如图2所示。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢2)常见的串口通信规约:目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。
最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,且直接用RS232相连。
RS-232C: “1”=-3~-15;“0”=+3~+15速率:0~20000bps;一般传输距离:15m。
RS-422:采用平衡传输,平衡发送器、差动接收器,速率:10Mbps/15m;90Kbps/1200m抗干扰能力强。
DB9和DB25的常用信号脚说明由于FX 2-232AW 价格过贵所以我们选用选用MAXIM 公司的MAX202实现RS-232与TTL 之间的电平转换。
MAX202内部有电压倍增电路和转换电路,仅需+5V 电源就可工作,使用十分方便;选用MAX490实现RS-485与TTL 之间的转换。
每片MAX490有一对发送器/接收器,由于通信采用全双工方式,故需两片MAX490,另外只需外接4只电容即可。
VBA 与PLC通讯
1 VBA简介Visual Basic的应用程序版(VBA)是Microsoft公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。
在没有VBA以前,一些应用软件如Excel、Word、Access、Project等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门往学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。
拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。
VBA作为一种新一代的标准宏语言,具有上述跨越多种应用软件并且具有控制应用软件对象的能力,使得程序设计职员仅需学习一种同一的标准宏语言,就可以转换到特定的应用软件上往,程序设计职员在编程和调试代码时所看到的是相同的用户界面,而且VBA与原应用软件的宏语言相兼容,以保障用户在代码和工作上的投资。
有了VBA以后,多种应用程序共用一种宏语言,节省了程序职员的学习时间,进步了不同应用软件间的相互开发和调用能力。
2 串口通讯程序简单的串口通讯程序一般是先由上位机向下位机发送读(write)或写(read)数据命令,然后等待下位机应答;下位机接受到命令之后,首先要对数据命令进行校验,对于符合校验约束的命令下位机会将相应的数据回复到上位机,对于不符合校验约束的命令下位机或将其抛弃或回复错误信息;上位机接收到下位机的响应之后,首先要对接收到的回复信息进行校验,对不符合校验约束的数据进行异常处理,对符合校验约束的信息进行解码,解码之后的信息便是上位机从下位机获得的有效信息了。
上位机向串口发送读命令之后需要等待下位机应答并读取回复信息,常用的等待有3种方式:1)轮询式上位机向串口发送读命令之后一直等待下位机应答,通讯程序处于一个等待循环中。
优点:速度快、误码率低(几乎不存在误码)。
缺点:消耗CPU。
(解决办法:使用Sleep()API函数)。
VB与PLC通讯程序教学
VB与PLC通讯程序教学为什么要学习编制VB与PLC通讯程序,学会编制VB与PLC通讯程序有什么用呢?简单地说:省成本!小型的控制系统触摸屏即可胜任,5.7寸的屏价格不一。
便宜也就一千多点,这个时候用VB做PLC 的上位机控制系统当然是不合算。
当控制系统要求上位机与PLC的通讯量很大时,触摸屏已经不能胜任了,需要用到组态软件。
组态软件确实是好东西,但是我们小家小业的,还是省着点好。
此时VB就派上用场,用VB在电脑上编制一套PLC通讯程序,如果我们的脑力劳动暂不计成本的话,一台电脑几千元基本就搞定了上位机与PLC的通讯。
怎么才能学会用VB编制PLC的上位机通讯程序呢?1、买一个VB6.0中文企业版的软件(VC,DELPHI,VB三合一的光盘也不过二十元左右)2、买本VB入门基础书,边看边练习做些小程序(别不舍得花钱,网上虽然可以下载,但是看起来并不方便,影响您的学习进度)3、VB看几天就可以了,VB与PLC通讯只需要应用几个简单的VB控件而已。
如文本框用来读、写PLC寄存器的值,按钮用来置、复位PLC位元件,文字标签用来显示PLC位元件的ON、OFF状态,三个控件应用就可以学会编制VB与PLC通讯程序了。
您先学会了VB与PLC通讯方法,后期您再努力学好VB。
(真正用到工程上,VB要学很长时间呢)4、查找一些有关通讯方面的书籍翻翻,了解一下通讯格式是怎么回事。
比如说波特率,停止位,开始位,校验位,数据位。
看不懂没关系,先记住这些概念,在学习编制VB与PLC通讯程序的过程中您会理解这些(实践是最好的老师)5、找一些别人做好的VB与PLC通讯程序看,别幻想您自己做出来,除非您基础雄厚,时间也雄厚(时间是金钱,参考是捷径。
)6、找一个朋友帮忙指导,还是不要幻想自己看懂找到的VB与PLC通讯程序,除非您基础雄厚,时间也雄厚(好学生也需要进学校学习,听课比自学学得好又快是真理。
)7、学懂了VB与PLC通讯的原理与程序编制方法后,千万别因满足而停止,动手去编制自己的VB与PLC通讯程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vb与plc通讯(以西门子S7-200为例)
S7-200 PLC之PPI协议
通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC 编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENS
S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计
系统中测控任务由SIEMENS
S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议
西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
这样收发两次数据,完成一次数据的读写[5]。
其通讯数据报文格式大致有以下几类:
1、读写申请的数据格式如下:
SD LE LER SD DA SA FC DASP SSAP DU FCS ED
SD:(Start Delimiter)开始定界符(68H)
LE:(Length)报文数据长度
LER:(Repeated Length)重复数据长度
SD: (Start Delimiter)开始定界符(68H)
SA:(Source Address)源地址,指该地址的指针,为地址值乘以8
DA:(Destination Address)目标地址,指该地址的指针,为地址值乘以8
FC:(Function Code)功能码
DSAP:(Destination Service Access Point)目的服务存取点
SSAP:(Source Service Access Point)源服务存取点
DU:(Data Unit)数据单元
FCS:(Frame Check Sequence)校验码
ED:(End Delimiter)结束分界符(16H)
报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校
验,只取其中的末字节值。
在读写PLC的变量数据中,读数据的功能码为6CH,写数据的功能码为7CH。
2、PLC接收到读写命令,校验后正确,返回的数据格式为E5H
3、确认读写命令的数据格式为:
SD SA DA FC FCS ED
其中SD为起始符,为10H
SA为数据源地址
DA为目的地址
FC为功能码,取5CH
FCS为SA+DA+FC的和的末字节
ED为结束符,取16H
PPI协议的软件编制
在采用上位机与PLC通讯时,上位机采用VB编程,计算机采用PPI电缆或普通的485串口卡与PLC的编程口连接,通讯系统采用主从结构,上位机遵循PPI协议格式,发出读写申请,PLC返回相应的数据。
程序实现如下:
1、串口初始化程序:
mPort = 1
MSComm1.Settings = "9600,e,8,1"
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
PPI协议定义串口为以二进制形式收发数据,这样报文的通讯效率比ASCII码高。
2、串口读取数据程序,以读取VB100数据单元为例:
Dim Str_Read(0 To 32) ‘定义发送的数据为字节为元素的数组。
Str_ Read (32) = &H16 ‘相应的数组元素赋值,按照以下格式:
Str_ Read (29) = (100*8) \ 256 ‘地址为指针值,先取高位地址指针
Str_ Read (30) = (100*8) Mod 256 ‘取低位地址指针
Str_ Read (24) = 1 ‘读取的数据长度(Byte的个数)
For I=4 to 30
Temp_FCS = Temp_FCS + Str_Read(i)
Next I
Str_Read(31)= Temp_FCS Mod 256 ‘计算FCS校验码,其它数组元素赋值省略。
68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 E 0 0 4 1 12 A 10 2 0 1 0 1 84 0 3 20 8B 16
PLC返回数据E5 后,确认读取命令,发送以下数据:
10 2 0 5C 5E 16
然后上位机VB程序接受到以下数据:
68 16 16 68 0 2 8 32 3 0 0 0 0 0 2 0 5 0 0 4 1 FF 4 0 8 22 78 16
首先识别目标地址和源地址,确认是这次申请的返回数据,然后经过校验检查,正确后解析出第26号数据(&H22)即为VB100字节的数据。
3、串口写入数据程序,以写VB100数据单元为例:
Dim Str_Write(0 To 37) ‘定义发送的数据为字节为元素的数组。
Str_Write (37) = &H16 ‘相应的数组元素赋值,按照以下格式
Str_Write (35) = &H10 ‘要写入的数据值
68 20 20 68 2 0 7C 32 1 0 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 4 0 8 C B9 16
PLC返回数据E5 后,确认写入命令,发送以下数据:
10 2 0 5C 5E 16
然后上位机VB程序接受到以下数据:
68 12 12 68 0 2 8 32 3 0 0 0 0 0 2 0 1 0 0 5 1 FF 47 16
这是PLC正确接收并写入信息的返回数据。
4、串口接收程序:
在数据接收程序中,利用VB中MSComm控件,一次接收缓冲区中的全部数据,存放到数组形式的暂存单元中,然后分析每个元素的值,得到读写的数据。
Dim RCV_Array() As Byte
Dim Dis_Array As String
Dim RCV_Len As Long
RCV_Array = MSComm1.Input ‘取出串口接收缓冲器的数据。
RCV_Len = UBound(RCV_Array)
ReDim Temp(0 To UBound(RCV_Array))
For i = 0 To RCV_Len
Dis_Array = Dis_Array & Hex(RCV_Array (i)) & " "
Next i
Text1.Text = Dis_Array ‘接收到的数据送显示。
在程序的读写过程中,一次最大可以读写222个字节,目前给出的数据读写为整数格式。
数据类型Str_ Read(27)
S 04H
SM 05H
I 81H
Q 82H
M 83H
V 84H
以上程序,是以读写PLC的V变量区为例,利用PPI协议还可以读写S7-200PLC中的各种类型数据,包括I、Q、SM、M、V、T、C、S等数据类型,能够直接读出以上变量中的位、字节、字、双字等,其中读位变量时,是读取该位所在的字节值,然后上位机自动识别出该位的值。
按照读写的数据类型,其中Str_ Read(27)的值各不同:
在控制系统中,PLC与上位计算机的通讯,采用了PPI通讯协议,上位机每0.5秒循环读写一次PLC。
PLC编程时,将要读取的检测值、输出值等数据,存放在PLC的一个连续的变量区中,当上位机读取PLC的数据时,就可以一次读出这组连续的数据,减少数据的分次频繁读取。
当修改设定值等数据时,进行写数据的通讯操作。