西门子工控机选型S7-200以太网通讯。我想用S7-200与工控机进行通讯,实现对PLC的寄存器的读写操作。请问如何操作?

VB与西门子S7 200 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(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)源地址,指该地址的指针,为地址值
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
看过本文章的还看过。。。
西门子 西门子s7-200ppi协议 上位机 串行通讯协议与串口 之一 西门子 协议 作者...西门子s7-200系列plc ppi协议及ppi动态链接库dll(需vb、delphi demo程序请回贴.........
西门子s7-200 plc之ppi通讯协议_信息与通信_工程科技_专业资料。西門子 s7-..有的 ppi 通訊協議,然後上位機采用 vb 編程,遵循 ppi 通訊協議,讀寫 plc 數據.........
ppi协议与西门子s7—200plc的通讯_信息与通信_工程科技_专业资料。针对西门子ppl...vb与西门子s7 200 ppi协... 4页 免费 西门子200plc之间的ppi通... 6页 ........
ppi协议是西门子s7-200型plc之间交换信息的专s7-200型plc之间的ppi协议通信之一...有 效区域四种:i、q、m、v 举例:&ib0,&vb100, &mb5 第四部份:读写的.........
vb 与 plc 通讯(以西门子 s7-200 为例) s7-200 plc 之 ppi 协议 通过硬件和软件侦听的方法,分析 plc 内部固有的 ppi 通讯协议,然后上位机采用 vb 编程,.........
s7-200_ppi通信协议_电子电路_工程科技_专业资料。此文档分析了西门子s7-200的...字节25及其后至校验和之前,为返回所读值。 如读vb100开始3个字节,其命令码.........
s7-200 plc 之 ppi 协议 s7-200 plc 之 ppi 协议 通过硬件和软件侦听的方法,分析 plc 内部固有的 ppi 通讯协议,然后上位 机采用 vb 编程,遵循 ppi 通讯.........
ppi协议与西门子s7—200plc的通讯[1]_信息与通信_工程科技_专业资料。ppi协议与...vb与西门子s7 200 ppi协... 4页 免费 西门子s7-200 ppi协议 3页 免费 vb.........
s7-200plc 的自由口通信西门子 s7-200 系列 plc 的 cpu 支持多样的通信协议,如 ppi 接口协议、 mpi 协议、profibus 协议、自由口通信协议等。其中自由口通信.........
关键字:plc ,ppi ,协议 1 前言 为了实现西门子 s7-200 plc 与单片机(rs..vb100=10 02 00 01 00 01 84 00 03 20 00 04 00 08 10 00 ae 16 .........
西门子plc ppi协议与vb通讯_信息与通信_工程科技_专业资料。西门子plc ppi协议与...siemens s7-200plc的编程通讯接口,内部固化的通讯协议为ppi协议,如果上位机遵循.........
vb程序实现s7200 ppi通讯_信息与通信_工程科技_专业资料。vb程序实现s7200 ppi...q7 s$ b k7 d 西门子的 ppi(point to point)通讯协议采用主从式的通讯.........
siemens ppi 协议分析西门子 s7-200 plc 之间或者 plc 与 pc 之间通信有很多...vb100=10 02 00 01 00 01 84 00 03 20 00 04 00 08 10 00 ae 16 .........
s7-200plc 的自由口通信西门子 s7-200 系列 plc 的 cpu 支持多样的通信协议,如 ppi 接口协议、 mpi 协议、 profibus 协议、自由口通信协议等。其中自由口.........
西门子s7-200系列plc自由口与ppi通讯的区别_电子电路_工程科技_专业资料。ppi ...ppi 通讯协议,然后上位 机采用 vb 编程,遵循 ppi 通讯协议,读写 plc 数据,.........
其实西门子 s7-200 plc 之间或者 plc 与 pc 之间通信有很多种方式:自由口, ...然后上位机采用 vb 编程,遵循 ppi 通讯协议,读写 plc 数据,实现人机操 作.........
字节25及其后至校验和之前,为返回所读值。 如读vb100开始3个字节,其命令码...西门子s7-200 ppi协议 3页 免费
s7-200 ppi点对点通信实... 22页 5下载券.........
其实西门子 s7-200 plc 之间或者 plc 与 pc 之间通信有很多种方式:自由口, ...然后上位机采用 vb 编程,遵循 ppi 通讯协议,读写 plc 数据,实现人机操 作.........
西门子s7-200 plc的ppi协议... 3页 免费 s7-200 与plc之ppi协议 暂无评价 3页 5财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请.........
vb0下s7-200plc与pc机的串行通信_互联网_it计算机_专业资料。vb0下s7—...其中,ppi和mpi是西门子专门开发的通信协议。 ppi协议用于点对点接口,是一个主.........
■ 相关热门内容
■ 热门推荐查看: 20518|回复: 16
UID160778好友主题贡献2064 帖子阅读权限10积分18879
  S7-200SMART PLC是西门子公司经过大量的市场调研,针对中国市场推出的一款高性价比的小型PLC产品,其大体的使用与S7-200的PLC差不多。这里我们主要说说他们之间不一样的地方。  S7-200PLC要实现PLC与PLC之间的通信,可以使用PPI进行数据的交换,但是对于S7-200SMART的PLC来说PLC上自带的<font color="#5通信口不支持PPI通信,如果我们需要通过这个<font color="#5口实现S7-200SMART PLC之间的数据交换,那么我们可以通过这个口来做MODBUS通信,一个作为MODBUS主站,一个作为MODBUS从站,来进行数据交换。  如果两个PLC作为MODBUS通信来实现PLC与PLC之间的数据交换的或工作量会比较大,那么S7-200SMART PLC对于S7-200的PLC来说他有一个优势,就是在PLC的基本单元上带有一个以太网口,我们可以使用这个以太网口来实现S7-200SMART PLC之间是数据交换,使用以太网通信可以实现<font color="#台PLC之间的数据交换。
  使用以太网实现S7-200SMART PLC之间的数据交换主要有以下几个步骤:
  第一步,对PLC进行硬件组态,配置好每一个PLC的IP地址,使需要通信的PLC在同一个网络。
  第二步、选择向导里面的GET/PUT操作,进行需要通信数据的组态,配置向导的工作只需要在本地站(主站)进行不需要在远程站(从站)进行。如图
  第三步,选择第一操作(operation)进行数据交换的组态。  以同样的方法配置另外的一个操作,类型可以选择为PUT类型。
  第四步、分配建议地址
  第五步、向导成后,在本地站中调用生成的子程序。超时:通信超时时间<font color="#0表示为<font color="#0s周期:每次所有操作都完成后进行一次切换错误,若出错该位为<font color="#注意:子程序要保证每个扫描周期都是用,所用是用SM0.0调用子程序。
-------------------------------作者:曾鑫版权所属: 技成培训网文章出处:QQ课堂在线听课流程:技成培训全国各地学员QQ群想加我QQ吗?点击右边加我为好友&&&Q:-------------------------------如果您喜欢此内容欢迎点击下方分享或者收藏
本帖子中包含更多资源
才可以下载或查看,没有帐号?
总评分:&积分 + 10&
要想读取模拟量信号应该选择什么类型的数据地址
UID1455645好友主题贡献50 帖子阅读权限100积分363
不错,学习学习
UID1337732好友主题贡献43 帖子阅读权限10积分217
为什么超时设为100s这么大& &而不是100ms
根本就没法用。
老鬼,你这个是要SMART编程软件V2.0版本的才能有这个功能
UID4946好友主题贡献4 帖子阅读权限10积分33
谢谢老师的无私奉献
UID4441好友主题贡献0 帖子阅读权限0积分-1
, 积分 -1, 距离下一级还需 1 积分
找到好贴不容易,我顶你了,谢了
UID4272好友主题贡献0 帖子阅读权限10积分0
有道理。。。
UID5083好友主题贡献0 帖子阅读权限10积分0
我是来刷分的,嘿嘿
UID4504好友主题贡献0 帖子阅读权限10积分0
这是什么东东啊
UID462好友主题贡献12 帖子阅读权限10积分114
UID120好友主题贡献0 帖子阅读权限0积分-1
, 积分 -1, 距离下一级还需 1 积分
路过,学习下
UID478好友主题贡献0 帖子阅读权限10积分0
过来看看的
UID538好友主题贡献0 帖子阅读权限10积分0
有竞争才有进步嘛
工控人(女)
白富美(女)
论坛推荐 /3
如果你认为你有一定的领导才能,并且想在一个无限空间释放自己独特的想法,那么欢迎你加入到我们的论坛管理队伍当中。
按照活动回复你遇到的变频器故障及解决方案,赢取变频器!
最近大家都在问书本后面的练习题的答案在哪?现在有一种方式你可以得到,来做一个提供答案的参与者吧!
官方微信服务号
官方微信订阅号
广东省 深圳市 专业技术人员继续教育网络学习平台丨联合运营单位:深圳市工程师联合会&深圳市技成科技有限公司 - 课程内容版权均归技成培训网所有&&& 粤ICP备号本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。
&&&Powered by Discuz! X2.5每日登录:+1西币&+1积分
&下次自动登录
绑定第三方账号登录 & & &
扫描二维码登录支持中心移动端
获取动态密码
售前文档售后文档热门视频系列热门版区售后服务概述自助服务帮助信息
You are here:
S7-200产品入门新手必读提供快速、便捷和全面的帮助,推荐准确、详尽和易懂的文档...
S7-200的以太网通信
知识ID:76683掌门人:
S7-200系统拥有一种智能模块CP243-1,它是以太网通信处理器,可用它将S7-200系统连接到工业以太网(IE)中。也可以将S7-200连接到建筑物的内部以太网体系中。一台S7-200可以通过CP243-1以太网模块与其它S7-200、S7-300或S7-400控制器进行通信。也可以通过工业以太网和STEP&7-Micro/WIN,实现S7-200系统的远程编程、配置和诊断。CP243-1以太网模块还可提供与S7-OPC的连接。CP243-1既可以作为客户机(Client),也可以作为服务器(Server)。以太网模块使用存储在S7-200&V内存中的配置信息生成以太网通讯所需的连接。
工控机与PLC之间以太网通讯模式
S7-200与工控机之间可以实现单对单、多对单或单对多多种通讯方式。这些通讯模式的具体实现需要具备相应的软硬件条件,程序组态方式。
一台上位机与一台S7200PLC的以太网通信
S7-200和上位机之间的通讯需要通过OPC的方式进行,而且只能S7-200作为Server端,上位机作为Client端来访问S7-200的数据。一种典型应用就是S7200扩展CP243-1模块通过以太网与上位机(组态软件)连接通讯。1.&S7-200&Server端的组态&&&&S7-200&Server端组态已经作为程序的一部分固化到PLC内存之中,设备出厂默认的S7-200&Server端IP地址为:&192.168.0.1模块的子网掩码地址:255.255.255.0网关地址&:0.0.0.0以秒为单位的保持活动时间间隔:30此连接的本地TSAP&(10.00)。此连接的远程TSAP&(10.00)。2.&PC&Station的组态客户以自己应用的具体上位机软件(例如:wincc;组态王等)来连接S7-200&Server端。
1 题目范围过大,建议更改为以太网相关的OPC通讯,题目再重新撰写;
2 分栏2的描述与主题内容类似,建议整体修改。
您觉得此知识好不好?
92%(12)8%(1)
20秒帮我们优化支持中心!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
欢迎您来到找答案
在“找答案”,已有超过7万个被解决的技术问题供您参考!
西门子技术专家亲自把关!常规的,简单的问题,在这里您都可以找到答案!
遇到了问题,就来“找答案”提问。
点击搜索框右侧的提问按钮,只需2步就能成功提交问题!分分钟就有无数大侠前来帮你。
在“找答案”每天都有大量的新问题。
别犹豫,只需要点击问题下方的“我要回答”就能参与。答题不光有积分相送,也会给您积攒大侠人气。
“找答案”定期开展各种有奖活动期待您的参与。
更有机会参加西门子高端用户峰会。领略西门子的博大精深!| 工艺 | |
当前位置: && &&
基于.NET的计算机与S7-200 PLC自由口通信的实现
添加:不详
摘要:介绍了S7-200 PLC和计算机的通信方式,详细说明了自由口模式下PLC与计算机通信的实现方法,包括自由口工作的通信流程,计算机指令帧格式约定,PLC反馈帧的格式约定等。编写了S7-200 PLC的自由口通信程序,在上位机中用.net环境下的C#语言开发了计算机与PLC的串行通信程序,可灵活实现对PLC存储区数据的读写功能。 关键词: PLC; .NET; C#;自由口通信中图分类号:TP393&& 文献标识码: AFree-port Communication Method between PC and S7-200 PLC based on .NETLU QingAbstract: The communication method between S7-200 PLC and computer is introduced and the S7-200 PLC communication under the free-port is illuminated in detail, which mainly includes working process, computer instruction format and PLC feedback information format. The serial communication program between computer and S7-200 PLC based on C# is programmed, where host computer can read and write any kinds of data in PLC to meet the requirement of the system . Key words: PLC; .NET; C#; Free-port Communication 引言&&&&&&& PLC作为一种高效、灵活、可靠的控制器,已经广泛地应用在包括数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等工业控制领域。在联网通信方面,PLC与上位计算机设备一起,可以组成“集中管理、分散控制”的分布式工业控制系统。在这种控制系统中,PLC与上位机的通信对系统整体性能有着较大的影响。面对众多厂家不同类型的PLC,它们在功能编程上没有统一的标准而且在通信协议上也是千差万别,选择一种即能满足通信要求又经济实用的通信协议是非常关键的。本文以S7-200PLC为对象,详细研究了S7-200PLC在自由端口模式下与PC之间的通信方法,并采用.net环境下的C#语言编写通信程序实现了计算机与PLC之间的通信。这种通信方式硬件投入低,通信协议灵活,可以在多个工业控制领域得到广泛的应用。
1&S7-200 PLC与上位机的通信方式&&&&&& S7-200 系列PLC与上位机进行通信主要有以下几种方式:(1)通过S7-200 PLC的OPC服务器(pc access)作为上位机的OPC服务器, 这种方式只须在OPC服务器中配置相应的测点数据,编程简单,但通信速率不高,用户不能自由修改通信协议;(2)利用触摸屏,这种方式需要根据触摸屏兼容的通信协议进行选择,通信可靠性高, 但灵活性差,触摸屏界面编程功能也不够强大;(3)利用通用编程软件实现,这种方法虽然系统开发工作量大,对技术人员的水平和经验都要求较高,但编程灵活,可以实现比较复杂的功能。本文采用了第三种通信方式,在开发通信软件时考虑了S7-200 PLC所特有的一种通信方式—自由口通信模式。在自由口模式下用户可自定义协议,利用串口和PLC的通信口来收发数据,通信功能完全由用户程序控制,通信任务和信息定义均需由用户编程实现,通过调用子程序来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。
2&自由口通讯工作模式的定义&&&&&& 在中小规模系统,通信速率要求不是特别高的情况下,S7-200 PLC自带的编程口可以作为通信口使用。S7-200 PLC编程软件与PLC进行通信所利用的PPI协议实质也是一种RS-485通信,它可在多种模式下工作,其中自由口通信功能是S7-200 PLC的一个独特的功能。在自由口通信方式下,S7-200 PLC可以与任何协议公开的设备、控制器进行通信,最高波特率可达38.4kbit/s。一般上位机串行口符合RS-232C标准协议,为了与PLC的RS-485通信则必须进行协议转换。在PLC编程方面,自由口模式下的通讯协议主要就是自由口通信工作模式控制字的定义以及发送和接受数据指令的格式约定及其参数设置等。
2.2& 接收指令(RCV)&&&&&& RCV(接收指令)从S7-200 PLC的通讯口接收一个或多个数据字节。接收的数据字节保存在接收数据缓冲区中。接收指令完成后,会产生一个中断事件(对Port0为中断事件23,对Port1为中断事件24)。启动接收指令后,CPU的通讯控制器就处于接收状态。使用接收指令时需要设置消息起始和结束的判断条件,通讯控制器用这些条件来判断消息的开始和结束。当判断消息结束时接收状态终止,否则通讯口会一直处在接收状态。由于S7-200 PLC的自由口通讯是建立在RS-485半双工通讯的基础上,接收和发送不能同时进行,接收指令不结束,就不能执行发送指令。对几个重要的特殊存储区设置举例如下:MOVB&& 16#EC, SMB87(允许接受,检测起始字符和结束字符,超时检测)MOVB&& 104, SMB88(发送报文起始字符为h) MOVB&& 72, SMB99(结束字符为H)MOVB&& +1000, SMB92(接受超时时间为1s) MOVB&& 35, SMB94(接受最大字符数为35)2.3& 发送指令(XMT)&&&&&&&& XMT 发送指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,发送命令格式为 XMT TABLE,PORT, 其中TABLE为数据存储区地址,PORT指定PLC要发送数据的端口。一次最多发送255个字节。XMT 发送指令完成后,会产生一个中断事件(Port0为中断事件9,Port1为中断事件26)也可以监视发送完成状态位SM4.5和SM4.6的变化来产生XMT中断。
3&S7-200 PLC 通信程序设计3.1& 通信程序流程&&&&&& 本程序中S7-200 CPU从通讯端口0接收字符串,使用RCV指令和接受完成中断接受数据,以自定义协议来实现计算机与S7-200PLC之间的数据通信时,为了避免通信中的各方争用通信线路,一般采用主从方式,即计算机作为主机,向作为从站的S7-200 PLC端口0发送规定格式的报文。&&&&&&& 当S7-200 PLC接收到指令后进行相关的数据校验, 这里采用BBC校验方式,即将每一帧的第一个字节(不包括起始字符)到该帧中正文校验码之前的所有字节作异或运算(本例中是从VB101到VB130),并将校验码作为报文一部分发送到计算机。在PLC接收端也要对接收缓冲区的数据进行BBC校验,然后与指令中的校验码比较,如果校验码相等则置位M0.0,PLC执行命令并将所接收到的数据反馈给计算机;如果校验码不相等, 则置位M0.1并返回带有校验码错误的反馈信息,通信流程图如图1所示。&&&&&
&&&&&&&&&& 图 1 PLC通信流程图3.2& 通信帧格式约定&&&&&&& 计算机每次发送一个33字节的指令来实现一次读写操作。每条指令都包括起始字符、结束字符、目标站地址、目标寄存器地址、要读写的字节数、要写入的数据和校验码。S7-200 PLC接收到计算机发送来的数据,先存放在PLC的接收缓冲区,设定以VB100开始。自定义的接收缓冲区的数据设计格式见表1表 1 PLC接收数据缓冲区VB100&接收到的字节数VB101&起始字符VB102&指令类型(读/写)VB103 VB104&目标站地址VB105~VB112&目标寄存器地址VB113 VB114&读写字节数VB115~VB130&要写入的数据VB131 VB132&校验码VB133&结束字符
&&&&&& 为避免在通信中由于指令中的起始字符或者结束字符与传输的数据有重复而导致PLC的误动作,这里采用文本传送二进制数据,即通过以16进制的ASCII码的格式来描述数据,让每个二进制的字节都表示成一对ASCII编码的16进制字符。比如48H可表示为34H、38H两个字节。指令类型自定义为05H代表读操作,06H代表写操作。目标寄存器地址采用四个字节表示,前两个字节表示寄存器类型,后两个表示寄存器号,例如:VB101的地址可表示为08 00 00 65,其中“08 00”表示V寄存器区,“00 65”表示寄存器号101。目标寄存器地址表示方法如表2所示:
PLC接收上位机的指令后会返回一个21字节的反馈信息。自定义的发送缓冲区的格式如表3所示:表 3 PLC发送缓冲区格式VB153&VB154&VB155&VB156~VB171&VB172 VB173&VB174发送字符数&起始字符&状态信息&发送数据区&校验码&结束字符
&&&&&& 其中VB155状态信息的格式定义为:01H代表读入正确,02H代表写入正确,03H代表校验码错误,04H代表指令不合法。3.3& 主要程序设计&&&&&& 本系统PLC程序设计采用模块化设计,主要包括主程序、初始化子程序、读子程序、写子程序、校验子程序、接收完成中断程序和发送完成中断程序。&&&&&& 主程序负责判断读写条件和调用各个子程序,具体包括判断PLC运行模式;调用初始化子程序;判断本机站号、指令类型和校验码等是否符合读写程序;调用读、写子程序;接收数据等。&&&&&& 在初始化子程序中主要设置一些通信参数和RCV接收参数并开启接收完成中断0和发送完成中断1。在读写子程序中根据接收到的指令信息读取目标寄存器数据或者把数据写入目标寄存器中,并利用XMT发送反馈信息到计算机。读写程序如下:读子程序:LD&& SM0.0R&&& SM87.7, 1& (禁止接收)R&&& M0.0&&& (复位校验位)RCV&&& VB100, 0MOVB& 103, VB154& (送返回信息起始字符为g)MOVB& 1, VB155&&& (状态信息读取正确)HTA&& *VD135,VB156,16(将要读取的数据做16进制转ASCII码转换)MOVB& 71, VB174&&& (结束字符为G)MOVB& 21,VB153& (发送字节数为21个字节)……&& (校验发送数据)LD&&& SM4.5(端口0发送空闲时置1)XMT& VB153, 0写子程序与读程序类似,只是要对写入的数据做ASCII码转换:MOVD& &VB115, VD145(装入要写的数据源的地址指针)ATH&& *VD145, *VD135, VB139(对要写入的数据做ASCII码转16进制转换)……XMT& VB153, 0
4&上位机C#编程&&&&&& 在WINDOWS环境下开发与PLC的通信软件,利用 .net环境下的通信组件SerialPort [3] 实现通信,并用 Visual C# 编写软件程序。该通信组件提供了使用RS232开发串行通信软件的细则,组件主要属性如表4所示:
&&&&&& .net环境下的SerialPort组件没有像传统的Visual Basic 6.0中的MSComm.PortOpen = True/False属性,所以打开关闭串口相应的是调用类的Open()和Close()方法。SerialPort组件读取数据的许多方法是同步阻塞调用,应尽量避免在主线程中调用,可以使用异步处理或线程间处理调用这些读取数据的方法,采用这种方式可以显著提高系统的工作性能,这也是.net环境与Visual Basic 6.0编程环境的不同之处。SerialPort组件的串口属性要设置成与PLC串口参数相同的数值,例19200bit/s,无检验,1位停止位,8个数据位。触发SerialPort组件接收数据的事件是DataReceived事件,设置ReceivedBytesThreshold为1表示立即接收。由于DataReceived事件在辅线程被引发,而收到完整的数据要在主线程窗体上显示,所以要用到跨线程处理,在C#中可采用控件异步委托BeginInvoke的方法窗体显示收到的数据。SerialPort接收主要程序如下:private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)&&&&&&& {&& int int_Len = serialPort1.BytesToR//接收字节数byte[] bytes2 = new byte[int_Len]; //接收字节serialPort1.Read(bytes2, 0, int_Len); //读入串口数据string st1 =ToHexString(bytes2);& //转换数据为16进制显示MyInvoke iv1 = new MyInvoke(Display); //异步委托调用显示数据ReceiveBox1.BeginInvoke(iv1, new object[] { st1 });}编写的通信界面如图2所示:&
图 2 PLC串口通信界面&&&&&&& 在这个通信界面下可以自由设置串口参数,当设置好通信参数、命令类型和寄存器参数后,即可发送指令数据,命令类型中05代表读,06代表写。操作界面分为手动发送和定时循环发送,利用自动定时发送可实时的读取PLC中的参数,也可利用手动发送把数据写入PLC或从PLC中读出。发送流程图如下:&&&
&&&&&&&&&&&&&&&&&&& 图 3 计算机发送流程图5&结束语&&&&&& 本文采用自由口通信方式实现了计算机和PLC的通讯,上位机采用C#开发通信软件。由于自由端口模式通信用户投资较低,编程时可以自定义通信协议并能灵活的与各种通信设备通信,且PLC程序具有模块化、结构化的特点,各种子程序可移植性好,因此在各种分布式控制系统和需要计算机处理数据的场合中会得到很好的运用和发挥。
6&参考文献[1] 廖常初.PLC编程及应用[M].北京:机械工业出版社,2005[2] SIMATIC S7-200可编程控制器技术手册[M].2002[3] PRICE,J.等著,窦芳等译.Visual C#.NET 从入门到精通[M].电子工业出版社,2003[4] 章立民.Visual C# 2005 程序开发与界面设计秘诀[M].机械工业出版社,2006[5] 陈小刚,裴开平.计算机与PLC串行通信的实现[J].河海大学常州分校学报,)[6] 孙旭松,胡雪梅.PLC 与上位机的通信实现[J].科技资讯,2006(25)
作者:未知 点击:2181次
本文标签:基于.NET的计算机与S7-200 PLC自由口通信的实现
* 由于无法获得联系方式等原因,本网使用的文字及图片的作品报酬未能及时支付,在此深表歉意,请《基于.NET的计算机与S7-200 PLC自由口通信的实现》相关权利人与机电之家网取得联系。
关于“基于.NET的计算机与S7-200 PLC自由口通信的实现”的更多资讯
:上海携哲电气设备有限公司
&【求购】 &求购报纤维...&&
&【求购】 &求购便携式...&&
&【求购】 &求购伞绳&&
&【求购】 &求购【求购...&&
&【求购】 &求购坡面削...&&
&【求购】 &求购减速机&&
&【求购】 &求购40匹...&&
&【求购】 &求购游艇摩...&&
VIP公司推荐}

我要回帖

更多关于 武汉西门子工控机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信