VB与S7 200通讯

合集下载

基于VB6.0的S7-200系列PLC与PC机通信实现

基于VB6.0的S7-200系列PLC与PC机通信实现
关键词 : L P C;自 由 口通 信 模 式 ;V 6 0 B . 中图 分 类 号 : P 7 T23 文 献标 识 码 :B
设备联 网,如上位计算机 、 打印机 , 变频器等 。 西 门子 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仅能完成现场数据的采集而不能给用户提供良好的通信界面不便于进行远程的实时监控

利用VB实现S7-200PLC与PC的串行通讯

利用VB实现S7-200PLC与PC的串行通讯

讯能力使 其在 工业 控制中得到越来越广泛的应用 。在现 代工 业控制领域中 ,P C作为下位机完成现场各种信 L
号 和 数 据 的采 集 、 算 和 控 制 , 位 机 则 可 提 供 人 机 交 互 界 面 , 现 数 据 的处 理 以 及 现 场 数 据 的 实 时 显 示 等 监 运 上 实 视 和远 程 控 制 等 功 能 。介 绍 了 利 用 VB实 现 S —2 0P C 与 上 位 机 之 间 串行 通 讯 的原 理 及 方 法 7 0 L
关键 词 : 可编 程 控 制器 ; 串 口通 讯 ;VB 中 图 分类 号 :T 2 3 P 7 文 献 标 识 码 :A
0 引 言
口 ,自由 口为标准 R - 4 5口E 。西 门子 公 司提供 的 S 8 2 3 P /P C P I电缆带 有 RS 3 / S 8 2 2 R 4 5电平 转换 器 ,因此在 不增 加 任 何 硬 件 的情 况 下 ,可 以很 方 便 地 将 P C 和 L
维普资讯
第 2 期 ( 第 1 1期 ) 总 4 2 0 年 4月 07
机 械 工 程 与 自 动 化 MECHANI CAL ENGI NEERI NG & AUT0M AT1 0N
No. 2 Ap . r
文 章 编 号 : 6 2 6 1 ( 0 7 0 — 0 9 0 1 7 — 4 3 2 0 ) 20 7 — 2
特率 ; 0 1 0为24 0 0 波特 率 ; 0 1 1为 12 0 0 波特 率 ; 1 I 0为 6 0波 特率 ;1 1为 3 0 特 率 。 0 1 0波
R 一22 S —20系列 提供 2个 串 口 , 中一 个端 口 S 3,7 0 其
( OR )作为 D 口, P T1 P 另一 个端 口 ( 0 P RTO )为 自由

浅谈S7-200 PLC与VB之间的串行通信研究

浅谈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通

VB与S7200300400OPC通讯

VB与S7200300400OPC通讯

利用visual basic所开发的opc客户端应用程序主要采用自动化通信接口和opc服务器程序实施通信。

而opc基金会提供的opc自动化接口 opcdaauto.dll动态链接库集成了所有用于对opc服务器进行访问的对象、属性和方法,为利用visual basic开发opc客户端应用程序提供了极大方便。

程序设计时,opc客户程序应当首先生成opc服务器支持的opc对象,然后再使用opc对象支持的属性和方法,实现对opc服务器的操作和访问。

opc数据访问对象主要包括opc服务器(opcserver)、opc组集合(opcgroups)、opc组(opcgroup)、opc标签集合(opcitems)、opc标签(opcitem)、opc浏览器(opcbrowser)等几个部分。

程序设计时,要首先在visual basic环境下选择对opc automation 2.0接口的引用,此时,opc对象会被自动添加到正在开发的工程项目中,然后,再根据需要建立这些对象的实例并利用其属性和方法来实现对opc服务器的访问。

对opc服务器的访问主要包括声明opc对象实例、连接opc server、添加标签变量、读写opc服务器(同步/异步)、断开连接等几个步骤。

opc对象实例的声明主要包括对opc服务器、opc组集合、opc组、opc标签集合、opc服务器句柄的声明及程序所需要的其它实例的声明。

opc客户端和opc server的连接主要靠调用opc服务器对象实例的connect方法函数来完成,例如,连接本地计算机dassidirect和rslinx opc server 的代码分别为connect("archestra.dassidirect.1")和connect("rslinx opc server")连接网络远程计算机(ip地址为10.144.45.45)上dassidirect和rslinx opc server 的代码分别为connect("archestra.dassidirect.1", "\10.144.45.45")和connect("rslinx opc server", "\10.144.45.45")需要说明的是当进行远程opc连接时,必须在远程计算机上运行dcomcnfg程序,并启动该计算机opc服务器的dcom服务。

VB与S7-200通讯

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等)通信,使通信范围扩大、控制系统配置更加灵活。

S7-200Smart之间通过GETPUT指令的以太网通讯

S7-200Smart之间通过GETPUT指令的以太网通讯

S7-200Smart之间通过GET/PUT指令进行以太网通讯S7-200SMART PLC是西门子公司经过大量的市场调研,针对中国市场推出的一款高性价比的小型PLC产品,其大多数的使用方法与S7-200的PLC差不多。

S7-200PLC要实现PLC之间的通信,之前的文档已经介绍过,比较常用的PPI 通讯和增加CP243-1后的以太网通讯,对于S7-200SMART的PLC来说PLC上自带的485通信接口不支持PPI通信协议,但是可以通过这个口来做MODBUS通信,一个作为MODBUS主站,一个作为MODBUS从站,来进行数据交换,由于此种方法需要进行大量的编程,工作量会比较大,那么200SMART控制器上集成的以太网口作用就体现出来了,我们可以使用这个以太网口来实现S7-200SMART PLC 之间以太网通讯。

通讯之前你需要知道:两台200smart控制器的IP地址需要设置在同一网段,并且网络互通;通讯双方仅一方需要做通讯设置和程序编写,另一方只需要将需通讯的数据存放在指定区域即可,类似于S7-300的单边通讯;具体步骤介绍:第一步:设置控制器IP地址对需要进行通讯的两台200smart控制器进行硬件组态,配置IP地址,使其在同一个网络中,此步不做具体说明;本例中:1#PLC IP地址:192.168.1.112#PLC IP地址:192.168.1.12通过在2#PLC程序中调用GET指令来读取1#PLC中的VD200 VD204 VW208三个数据;第二步:通过GET/PUT向导配置指令参数左侧菜单栏中打开向导下拉菜单-----双击GET/PUT打开向导为此条通讯指令命名点击下一步:类型:选择GET;远程IP:填写1#PLC对应的IP地址192.168.1.11;远程地址:填写数据区的起始字节地址,VB200;本地地址:填写将读取数据存放在本地地址的起始字节地址,本例中为VB200;传送字节大小:本例中读取3个数据VD200 VD204 VW208,对应字节为VB200-VB209,共10个字节;点击下一步:为GET指令分配存储区,此处可以点击建议,系统自动分配其余配置选择默认即可,一直下一步,最后点击生成按钮,生成程序。

用VB6.0实现计算机对S7—200PLC的实时监控

用VB6.0实现计算机对S7—200PLC的实时监控
3 1 PL 软 件 设 置 . C
安全可靠 、 功能齐全 、 应用灵 活、 操作维修 容易 和稳 定可靠
等 特点 而得 到 广 泛 应 用 。但 他 也 存 在一 些 缺 点 , 不 能 给 如
用 户提 供 良好 的人 机 控 制 、 理 界 面 。 随 着 工 厂 自动 化 程 管
度要 求 的 不 断 提 高 , 产 过 程 中 , 监 视 、 制 P 内 部 生 要 控 I C
编 程 控 制 器 PI P o rmma l o i C n rl r , 于其 r ga C( beL gc o tol ) 由 e
输端 口为 串行 通信 端 E , S2 2 计 算机 普遍 配备 的接 1 R 3 是
口 。为 使 数 据 侦 听 能 够 进 行 , 用 到 R 2 S4 5 换 需 S2 /R 8 转 3 器 AD AM 一 5 0 他 可 将 R 3 42 , S2 2信 号 转 换 成 独 立 的 R S 4 5信 号 , 不 需 要 改 变 计 算 机 的硬 件 或 软 件 。 8 而 3 通 信 方 法
S p r ii n t 7 — 2 0PLC r m h m p t r wih VB . u e v so o S 0 f o t e Co u e t 6 0
H E an ho Xi z ng
(H u n M e alu g c lPr e sona c ol ie , na t l r i a of s i lTe hn ogy Co l ge Zhu ho 41 00, i a) z u, 20 Ch n
Key wor s: d PLC ; iu V s alBasc 6 0; e ilc m u c to r a — tm e m on t rng i . s ra om nia i n; e l i io i

VB与西门子S7 200 PPI协议通讯

VB与西门子S7 200 PPI协议通讯

VB与西门子S7 200 PPI协议通讯通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。

这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。

在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。

在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。

采用这种方式,PLC编程调试较为烦琐,占用P LC的软件中断和代码资源,而且当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控件完成串口数据通讯,通讯遵循的协议为P PI协议。

PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历初次试探自由口通信,从PLC读仪表数据开始,当时有一套比较老的设备,仪表是国外的,自定义的协议,国内集成商可能是仪表和接口板卡开发比较熟悉,或许是为了满足客户不同的PLC品牌需求,没有采用PLC和仪表直接通信,而是做了一块接口板,接口板和PLC之间采用数字量模式(对于PLC一侧DI 1 / DO 8+3+1+1),接口板和仪表之间采用RS232C通信。

PLC8个输出点相当于并口,3个输出点相当于读写参数编号,1个读写指令点,1个高低位指令点。

一同事有点高级语言的底子,用VB作了一个简单的读参数测试,可以接收到消息串。

于是本人饶有兴趣想试试PLC直接和仪表进行通信,翻看仪表的自定义协议,信息帧均是有指定的起始符和结束符,后面没有校验字符,现在回忆当时情况感觉还是有点幸运,如果校验复杂一点,可能就失去了继续深入的耐性了。

对照S7-200的系统手册,看XMT和RCV的指令介绍,当时对于通信指令和中断指令都不甚明了,需要一点点尝试,终于有点眉目,能够成功的读取一个参数,后来在慢慢的加入逻辑,读取多个参数,对于RCV接收机制和指令使用太过生疏,加上对中断也没有深入的概念,容易出现断线且无法恢复,后来逐渐加了一些重发之类的逻辑,形成了一个逻辑繁琐可读性极差的初级版本。

后来有一个需求,有用户使用了多套年岁较高的纺织机械,之前用的是西门子变频器和S7-200,西门子变频器老型号停产,需要更换新的型号,因为是基于通信给定频率,即使是更换西门子的新型号,也需要变动PLC频率给定部分的程序,用户干脆在一台机器上换了富士的变频器,找厂家改动了程序,后来有某国产变频器经销商想说服用户更换他家的变频器,用户答应给试机的机会,不过需要经销商来适配PLC程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。

西门子PLC之间的通讯

西门子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相互通讯传输数据
安装s7 OPC Server软件后,在操作系统中将增加一个OPC服务器,服务器的名字是“OPCServer Computing”。VB或Delphi中可编写OPC客户端程序与OPC服务器通信。以下给出在VB开发环境下编写OPC客户端程序的过程:首先在VB开发环境中的ProjectkReferences中添加OPC Automation2.0,然后编写连接OPC Server、添加组、添加条目、读写数据的程序。使用到的函数如下:connect函数与OPC Server建
性)按钮,打开属性对话框。将“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为例)

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则完成正确的读写响应,回应给上位机数据。

西门子S7-200与上位机通讯,读取温度值的程序范例

西门子S7-200与上位机通讯,读取温度值的程序范例

西门子S7-200与上位机通讯,读取温度值的程序范例!PLC主程序网络1// 设置控制方式为自由口通信方式,启动接收字符中断 // PLC首次扫描自由口通信,波特率为9600,数据位8,停止位1,无校验初始化RCV,允许RCV,有结束符,检查空闲时间结束符为 A空闲时间为5MS一次接收的最大字符为6个启动通信口,接收完成中断全局允许中断接收数据LD SM0.1MOVB 16#09, SMB30MOVB 16#B0, SMB87MOVB 16#0A, SMB89MOVB 6, SMB94ATCH INT_0, 23ENIRCV VB199, 0网络2// 检测温度送VW0 //转换成实际温度值检测温度送输出缓冲区LD SM0.0MOVW AIW0, VW0/I +54, VW0MOVW AIW2, VW2/I +54, VW2MOVW 1, VW300MOVW VW0, VW302MOVW VW2, VW304网络3// 设置温度控制上限和下限//LD SM0.0MOVW +350, VW4MOVW +450, VW6网络4// 检测温度低于下限,则输出加温 // LDW< VW0, VW4A SM0.5S Q0.0, 1网络5// 检测温度高于上限,则输出降温 // LDW> VW0, VW6A SM0.5R Q0.0, 1网络6发送字节数据,送VB99发送检测温度数据,送VW100发送工作站编号数据,送VW102LD SM0.0MOVB 6, VB99MOVW VW300, VW100MOVW VW302, VW102MOVW VW304, VW104网络7// 传送数据 //LD SM0.5XMT VB99, 0中断程序网络1//通信口接收数据完成后的中断 //// SMB86 等于16#20,表示PLC收到结速符 // 收到结束符,把收到的数据传到VB400中断有条件返回否则继续接收LDB= SMB86, 16#20MOVB VB200, VB400CRETINOTRCV VB199, 0\\*******************************\\Dim x1, k1, k2Dim p11, p22 '定义变量Dim aa() As Byte '定义数组Private Sub Command1_Click() '开始监控,定时器1有效Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click() '退事程序,定时器1无效Timer1.Enabled = FalseCls '清屏Unload MeEnd SubPrivate Sub Form_Load() '初始化Timer1.Enabled = False '定时器1无效Timer1.Interval = 100 '定时器1时间为0.1S Timer2.Enabled = True '定时器2有效Timer2.Interval = 1000 '定时器2时间为1S Picture1.ScaleMode = 0 '定义纵横坐标mPort = 1 '设定端口号MSComm1.Settings = "9600,n,8,1" '设定通讯波特率MSComm1.InputLen = 6 '输入缓冲区为6个字符MSComm1.InBufferSize = 256 '接收缓冲器大小MSComm1.OutBufferSize = 256 '输出缓冲器大小MSComm1.InputMode = comInputModeBinary '以二进制传输MSComm1.OutBufferCount = 0 '清空发送缓冲区MSComm1.InBufferCount = 0 '清空接收缓冲区Private Sub Timer1_Timer() '定时器1有效,触发接收事件MSComm1.PortOpen = True '打开端口ReDim aa(0 To 5) '定义动态数组k1 = 0 '识别PLC站号,为1 If k1 = 0 Then MSComm1.Output = "1" + Chr(10) + Chr(13) '发送Do While MSComm1.InBufferCount = 0 '准备接收数据Loopaa = MSComm1.Input '接收数据存入数组If aa(0) > 64 Then GoTo xxx:k2 = Int(aa(0) * 255 + aa(1) * 1)Select Case k2Case 1p11 = Int(aa(2) * 255 + aa(3) * 1)p22 = Int(aa(4) * 255 + aa(5) * 1)Case ElseEnd Selectk1 = k1 + 1If k1 > 2 Then k1 = 0xxx:MSComm1.PortOpen = FalseEnd SubPrivate Sub Timer2_Timer() '绘制各中频炉的温度曲线x1 = x1 + 1 '时间增加为1SPicture1.PSet (x1, p11), vbRed '绘制1#炉的温度曲线,为红色Picture1.PSet (x1, p22), vbBlue '绘制2#炉的温度曲线,为黄色Text1.Text = Str(p11) '输出1#炉温度值Text2.Text = Str(p22) '输出2#炉温度值Text3.Text = Str(x1) '输出监控时间End Sub。

西门子S7200与变频器MODBUS通讯实例详解

西门子S7200与变频器MODBUS通讯实例详解

西门子S7200与变频器MODBUS通讯实例详解西门子S7200PLC简介西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。

一致的模块化设计促进了低性能定制产品的创造和可扩展性的解决方案。

来自西门子的S7- 200微型PLC可以被当作独立的微型PLC解决方案或与其他控制器相结合使用。

Modbus通讯协议简介Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。

ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。

其系统结构既包括硬件、亦包括软件。

它可应用于各种数据采集和过程监控。

ModBus网络只有一个主机,所有通信都由他发出。

网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。

采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。

1MODBUSRTU协议在S7-200中的应用原理1.1MODBUSRTU协议与S7-200相互关系简介S7-200CPU上的通讯口Port0可以支持MODBUSRTU协议,成为MODBUSRTU从站。

此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。

想在S7-200CPU与其他支持MODBUSRTU的设备使用MODBUSRTU协议通讯,需要由有S7-200CPU做MODBUS主站。

S7-200CPU做主站必须由用户自己用自由口模式,按相关协议编程。

2从站指令的用法:S7-200控制系统应用中,MODBUSRTU从站指令库只支持CPU上的通讯0口(Port0)。

要实现MODBUSRTU通讯,需要Step7-Micro/WIN32V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32V3.2InstructionLibrary(指令库)。

VB如何通过西门子OPC通讯方式连接S7-PLC

VB如何通过西门子OPC通讯方式连接S7-PLC
DimWithEventsMyOPCGroupAsOPCGroup‘定义OPC组对象变量MyOPCGroup
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&rdquo;在随之弹出的&ldquo;ADDGroup&rdquo;对话框中输入组名,本例命名为&ldquo;OPC&rdquo;。
点击OK确认;
;双击已添加的连接组(OPC),即弹出&ldquo;OPCNavigator&rdquo;对话框,此窗口中显示
所有的连接协议。双击&ldquo;S7&示(S7

基于VB环境的计算机与S7-200型PLC之间串行通信的研究

基于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通讯

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通信技术》课件

第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 通信数据报文格式
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文以下内容为采用VB6.0设计人机界面的工业控制计算机与S7-200PLC 自由口通信进行的方法。

常规的通过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-200PLC 的一个很有特色的功能,它使S7-200PLC可以与任何具有串行接口和通信协议公开的智能设备(如变频器、单片机和Modem等)通信,使通信范围扩大、控制系统配置更加灵活。

自由口通信模式在物理接口上要求双方都使用RS485接口,使用PPI编程电缆或其他具有RS485/RS232转换功能的通信电缆,这样就可以实现S7-200PLC 与计算机的自由口通信(即串行通信)。

S7-200PLC的自由口通信,即用户可以通过用户程序对通信口进行操作,通信协议完全由用户程序控制。

通过设定特殊存储字节SMB30(端口0)或SMB130(端口1)允许自由口模式,同时这两个特殊存储字节也用于选择波特率、奇偶校验、数据位数和通信协议,用户可以通过使用发送中断、接收中断、发送指令(XMT)和接收指令(RCV)对通信口进行操作。

S7-200PLC使用RCV指令接收数据,RCV指令可以接收一个或最多至255个字符。

在缓冲区接收到最后一个字符时,会产生一个中断事件23,也可以采用查询方式监视状态字节SM86来判断数据接收是否完成。

通过对SMB87接受状态字节的设定,用户可自定义通信协议中帧的具体格式。

2.S7-200PLC自由口通信协议设计
基于液压试验台的设计功能要求,这里讲述工业控制计算机作为上位机向作为下位机的S7-200PLC发送指令的自由口通信。

该协议中工业控制计算机向S7-200PLC的缓冲区发送数据帧,工业控制计算机发送的数据帧格式见表1。

缓冲区中存储的数据格式见表2。

本程序中的实际接收到的数据存储情况见表3。

当PLC收到数据帧的结束字符就会产生中断事件23调用中断程序INT0,进而调用子程序SBR1进行相应的实验过程控制。

表4中为部分S7-200PLC的自由口通信程序,包括自由口初始化程序和接收到控制信息数据后相应的中断INT0程序。

[1]西门子公司.SIMATIC S7-200可编程控制器系统手册[M].2000
3.VB通信控制程序的实现
VB6.0为串行通信程序设计提供了一种标准串行通信控件MSComm。

该控件具有完善的串行数据的发送和接收功能,不但包括了全部WindowsAPI中关于串行通信的函数所具有的功能,还提供了更多的对象属性来满足不同用户的编程需要。

下面详细介绍采用MSComm控件实现与S7-200PLC进行自由口通信的程序。

程序运行过程中只要点击相应的按钮就可以得到相应的控制信息数据,这样S7-200PLC接收到控制信息数据后,就可以实现液压实全部过程的自动控制。

以下是工业控制计算机向S7-200PLC的V变量存储区写数据的自由口通信程序的简单示例。

程序代码:
Option Explicit
Private Sub Command1Click()
Dim Buff(2)As Byte
Buff(0)=&H1‘起始字符
Buff(1)=&H41‘接收到的控制信息数据
Buff(2)=&H3‘结束字符
MSComm1.Output=Buff‘向PLC发送字符控制信息
End Sub
Private Sub Form Load()
mPort=1‘指定使用COM1作通信传输MSComml.Settings=“9600,8,1”‘9600波特率,无校验,8位数据位MSComm1.PortOpen=True‘打开COM1
End Sub
4结束语
计算机与S7-200PLC的自由口通信协议可以很可靠地实现计算机与S7-200 PLC的自由口通信,实现了生产过程的自动控制,还有可视化的操作界面,充分体现了人机交互的优势。

采用VB6.0设计编写的与S7-200PLC的自由口通信程序在Windows操作系统下运行成功,还要注意一点就是S7-200PLC与VB的端口初始化设计要完全对应,这只要发送相关的生产过程控制信息,就能实现生产过程的控制与监测。

关于自由口通信
Freeport方式是一种通讯协议完全开放的工作方式,如果说PPI方式是外设适应PLC的话,那么Freeport方式就是PLC适应外设。

在Freeport方式下外设不受PPI协议的限制,不支持PPI协议的设备也能够与S7-200系列PLC通讯,在Freeport方式下通讯口的协议由外设决定,PLC通过程序来适应外设。

Freeport
方式是对PPI方式的一个补充,该方式使得S7-200系列PLC可以与任何具有通讯能力的、并且协议公开的设备相通讯。

相关文档
最新文档