PC与西门子PLC 通讯实例+源代码
西门子PC、PLC、MP377通讯连接
西门子PC、PLC、MP377之间的通讯连接说明:西门子PLC与触摸屏通过DP口连接
一、MPI
1.PC下载到PLC(用PC Adapter USB传输)
在控制面板中,选择“Setting the PG/PC Interface”,打开如图1。
图1
点击属性,设置参数如图2。
如图2
在STEP 7中选择下载即可。
2.PC下载到MP377(用RS232/PPI Multi-Master Cable传输)
在MP377面板中,进入控制面板(Control Panel)中选择“Transfer”选择Channel 1 ,下面两个打勾。
在WinCC flexible中,设置参数如图3。
图3
点击传送设置,设定参数如图4。
图4
二、DP
1.PC下载到PLC
在控制面板中,选择“Setting the PG/PC Interface”,打开如图5。
图5
点击属性,设置参数如图6。
图6
2.PC下载到MP377
在WinCC Flexible软件中,选择连接,设定参数如图7。
图7
点击传送设置,设定参数如图8
图8
三、PLC与MP377DP通讯
在SETP 7中Hardware中双击打开HW Config,双击2号槽下的DP,跳出界面,如图9。
图9
点击属性(Properties),在点击新建(New),设定第二页参数如图10。
图10
设置完成,选择OK退出。
分别将SETP7和WinCC Flexible的程序下载到PLC和MP377中即可。
PC(高级语言编程)与西门子S7300400通讯方法
PC(高级语言编程)与西门子S7300/400通讯方法在实际应用过程中,某些时候可能会采用VB/DELPHI/VC等高级语言,自主编程与西门子PLC进行通讯,这类帖子、论文在网上都可以找到,在此总结一下。
1、Prodave通讯Prodave是西门子提供的一个软件包,为高级语言编程和plc通讯提供接口。
通讯接口:MPI因为MPI口是每块cpu的编程口,所以plc不需要另外添加通讯模块,这个方案就比较经济,而且prodave软件包里面附带了example和详细的说明,用起来应该比较简单和方便(本人只匆匆看过文档,没有实验过)。
这方面的资料在百度上很多。
当然,mpi的速度是有限的,如果采用普通的pc adapter连接pc和p lc,最高速度也就38.4kbps,我不知道prodave能否支持mpi卡(5611之类的话),如果可以的话速度可以达到187.5kbps。
2、串行通讯看到过一些论文,采用串行通讯的方法实现pc和plc通讯。
这种情况存在几点要求:a、需要为plc添加一块串行通讯模块,比如300的话就需要cp340或者cp341(前者便宜些);b、plc里面需要对串行通讯进行编程,其实也就是接收报文和发送报文,调用f b2/fb3(cp340的话)。
c、串行通讯的速度是有目共睹的,而且cp340或者cp341的数据吞吐量也是有限的,即报文长度是有限制的,因此个人认为通讯数据量大的话采用串行通讯就不合适了。
d、报文格式的话就比较自由,但是也应当合理,我虽然没有具体实验过,但是个人认为可以参考modbus的报文结构来编程,甚至就采用modbus的规范,不过这样的话要求编程者对pc和plc侧的modbus编程都要熟悉。
3、OPCOpc是这些年来很流行的东西,其实我很讨厌opc的安全认证的设定。
不过采用opc编程来访问plc真的是一件非常轻松惬意的事情。
你需要做的就是了解opc的结构和编程,尤其是采用vb来编写opc简直是件傻瓜化的工作当然也牺牲了很多。
PLC与PC连接设置
打开西门子Step 7软件SIMATIC Manager。
在左边框里选择“SIMATIC 400 Station”,再双击右边的“Hardware”,出现下面的界面。
双击“CP 443-1”,出现“Properties – CP 443-1 – (R0/S3)”对话框,点击“Properties”按钮。
出现“Properties Ethernet interface CP 443-1 (R0/S3)”
记录好IP Address 和Subnet mask。
点击“OK”关闭当前对话框,再点击“OK”关闭上一层对话框。
回到“HW Configing…”窗口,存盘编译。
编译完成后,关闭“HW Configing…”窗口。
在扫描出来的设备里找“S7-400 CP”,记录下下面的“MAC address”。
点击“OK”。
把之前记录的IP address 和Subnet mask 填进去。
点击“Assign IP Configuration”。
等进度完成后,再点击“Close”。
再重新打开“Hardware”窗口,“properties”对话框。
确认“MAC address”是否跟前面记录的一致,如果不一致,改为之前记录的MAC地址。
改了以后,请重新存盘编译。
关闭“HW config”窗口。
回到SIMATIC Manager 窗口,左边框里点击“Blocks”。
菜单栏里点击“PLC”----“Download User Program to Menory Card”。
然后一路“OK”、“YES”。
直到PLC重启。
Simens s7-200cn PLC与PC连接教程
Siemens s7-200 cn 链接电脑和下载程序指导第一步:准备材料:西门子PLC、电脑及软件、PORT口下载线以及电线若干第二步:正确连线下载线接到PORT 0,另一端接到电脑的串口(在主机后面),PLC 220v 供电。
注意,先接好串口线电脑开机后再给PLC上电。
第三步:通电打开软V4.0 STEP 7 MicroWIN SP9,双击左侧CPU 221 REL 01.10(可能会有不同),出现下面的对话框,点击确认,然后出现一个选择对话框。
点击communications,进行选择。
在这个界面点击set PG/PC interface,进入下一个界面在这个界面里我们看到很多连接方式的选项,我们打开找到PC/PPI cable。
PPI.1,双击它,又弹出来一个对话框。
我们点击第二个选项,也就是Local Connection,它默认是USB,如果你是USB转的串口,那就选择这个,我们用的电脑自带的串口(一般台式机有,笔记本没有),所以选择COM1,然后就可以确认了。
一直确认到这个界面现在我们可以双击进行刷新了。
,扫描界面如图所示,(PS,如果速度不是9.6 Kbps需要在刚才的界面选择),扫描完成后就会出现目前连接的CPU了。
我们点击OK 在下一个界面就可以读取PLC进行确认了。
可以看到我们的类型是CPU 226CN 版本是02.01确认后就可以进行编程了。
我们写一个最简单的起保停电路,进行下载验证。
点击上面的这个按钮,点击download,跟随提示进行操作他会先把CPU设置为stop,下载完成后又设置成run。
点击DEBUG,选择START PROGRAM STATUS,可以看到我们下面的界面变成=仿真的界面了,在这个界面就可以实时观察运行的情况了。
谢谢大家。
2018-10-8。
通过OPC实现PC与西门子S7-200PLC数据通信
下载后 , 可以使用 S E 7 Mir/ i T P 一 co N软件的“ W 查看” 功能 , 测试 P C的高 L 速计数器 是否正确读取旋转 编码 器的高速脉冲 。另外 ,7 20P c s — 0 CA — ee ss 软件带有 内置 的测 试客户端 , 用户可 以使用它来检 测 O C服务器 P 配置及 通信的正确性 。将测试 的条 目拖拽到测 试客户端 , 然后 点击在 线 按钮 使之 在线 , 如果 配置 及通 信正 确 , 显示 对应 的数据 值 , 会 并在 “ u ly 一 栏 显 示 “ od , 则会 显 示 “a ” Q ai ” t go ” 否 bd 。 4OP . C技 术 应 用 与 程 序 实现 本 文使用 了 V sa B s . iul ai 60开发位 置前端 显示 软件 。在建立 V c B 项 目之后 , 首先 为该项 目选择 引用 的 O C服务器 为 s — 0 CA cs P 7 2 0P ces 提供 的 O C服务 器。引用 的方法为 : P 在菜单 的“ 工程 ” —— “ 引用 ” 弹出 窗 口中 , 选择添加“ im n P A uo t n20 。 Se e s CD A tmai .” O o 程序 中与数据通信等有关 的编程要点 、 主要语句和注释如下: 41 .创建 O C P 窗体 , 明O C 声 P 服务器对象 OC P 服务 器的逻辑对象共包含三类对象 ( bet: P 服务器对象 O j )O C c ( P S re) O C组对 象( P Gru )O C条 目对象 ( P h m) P O C evr , P O C op ,P O C e 。O C 服务器 对象包 含着 O C 对象 , P 组对象 又包含着 O C条 目对象 。 P组 OC P O C 目对象 可由客户端 定义和维 护 , P条 是进行数据 读写的最小逻 辑单 位, 它包括值 ( a e 、 V l )质量( uly 、 u Q a t 时间标 签( i et p 三个基本属 i) Tm S m ) a 性。使用 O C P 服务器 之前 , 必须对其三类对象进行声 明, B V 语句如下 :
西门子PLC与PC连接说明
1、s400/s300的IP地址:xxx.xxx.xxx.xxxx
2、连接时候的网卡选择:
RealtekPLCeFE Fa……(及为所用网卡)
打开siemens进入工作界面:“选择”-“设置PG\PC接口”选择关于RealtekPLCe FE Fa……的网卡:
3、打开siemens后,首先要新建两个项目,一个留作备份,另一个用作修改的原本。
4、将PLC上载到PC的方法:新建项目,名称可以由自己定,然后删除MPI,
,卡槽数为:s400=x;s300=x(查看PLC在第几个插槽即可)
5、登录密码:######(若有密码正确输入即可)
6、点开下载到PC的程序OB1,然后在“选项”--“符号表”→“符号表”—“导入…”加入备注信息,便于解读程序。
7、待当天任务全部结束后,记得要将s400的程序固化(要将程序写入到储存卡里边,不然断电重启后在PLC里边的程序就会丢失),PLC会自动重启,会造成信息错乱(正常情况)。
S300没有必要将程序存入储存卡,不会丢失。
PC与PLC的串口通信及编程实现
PC与PLC的串口通信及编程实现黄植功(广西师范大学物理与电子工程学院,广西 桂林 541004)摘 要:在自由口模式下,通信协议由用户自己的梯形图程序控制。
用户可以使用梯形图程序调用各种子程序,来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。
研究了在自由端口模式下PC与S7-200型PLC之间的通信,并采用Visual Basic编程来实现上位机与下位机之间的通信。
关键词:Visual Basic;自由端口模式;PLC通信;串口通信中图分类号:TP312文献标识码:A文章编号:1003-7551(2007)03-0035-041 引言由于具有编程方法简单易学、功能强、性能价格比高、可靠性高、抗干扰能力强、体积小、能耗低、硬件配套齐全、设计调试安装维护方便等突出优点,可编程逻辑控制器(PLC)已经广泛地应用在发达国家所有的工业部门,主要应用在数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等方面。
在联网通信方面,PLC与其他智能控制设备一起,可以组成“集中管理、分散控制”的分布式控制系统。
在这种工业控制系统中,为了避免通信各方争用通信线路,PC与PLC之间的通信一般采用主从方式,通常采用计算机(PC)作为上位机负责完成数据分析、处理和存储、设备状态显示和打印输出等功能以实现对分布在工业现场的被控制系统进行集中的实时监测与控制;PLC作为下位机使用,承担执行上位机的输出指令、现场数据采集和设备运转状态识别等任务。
本文研究了在自由端口模式下PC与S7-200型PLC之间的通信,并采用Visual Basic编程来实现上位机与下位机之间的通信。
2 PLC与PC的电缆连接和电缆的切换时间S7-200的通信接口为RS-485,PC可以采用RS-232通信接口,RS-232/PPI多主站电缆可以连接PC与S7-200型PLC,实现S7-200 CPU 与PC的通信。
由于使用RS-232/PPI电缆,因此在S7-200 CPU的用户程序中应考虑电缆的切换时间,切换时间因波特率的不同而不同,例如,如果采用9600bit/s的波特率,则电缆的切换时间为2ms,电缆上DIP开关设置为010,如果采用19200bit/s的波特率,则电缆的切换时间为1ms。
用VB6_0实现西门子PLC与PC机的串行通讯
收稿日期:2003-01-15作者简介:敬 伟(1977—),女,重庆人,西安工业学院硕士研究生,研究方向为自动化控制、智能仪表。
用VB6.0实现西门子PLC 与PC 机的串行通讯敬 伟1,樊文侠1,涂 劲2(1.西安工业学院电子信息科学与工程系,陕西西安710032;2.重庆大学,重庆400044)摘 要:对西门子系列PLC 的通讯协议进行了详细的介绍,并以VB6.0开发系统在WINDOWS 环境下实现了PC 机与西门子系列PLC 之间的串行通讯。
文章给出了PLC 和VB6.0相关的主要程序,通过该通讯程序实现了PC 机对西门子系列PLC 的监控和控制。
同时本程序对PC 机与其他型号PLC 之间的通讯也有一定的借鉴意义。
关键词:可编程控制器;串行通讯;协议中图分类号:TP393104 文献标识码:A 文章编号:1005-3751(2003)0025-02Achieve Serial Communication betw een PC and SIEMENS Series PLC by VB6.0J IN G Wei 1,FAN Wen 2xia 1,TU Jin 2(1.Xi ’an Inst.of Tech.,Xi ’an 710032,China ;2.Chongqing University ,Chongqing 400044,China )Abstract :The communication protocol of SIEMENS series PLC is introduced and serial communication between PC and SIEMENS series PLC is achieved by VB6.0development system in windows environment.The mostly program about PLC and VB6.0is introduced and can monitor SIEMENS series PLC through PC.What ’s more ,the method of disposal can be applied with other type of PLC or sin 2glechip.K ey w ords :programmable controller (PLC );serial communication ;protocol PLC 以卓越的可靠性和方便的可编程性广泛应用于工业控制领域。
PLC与PC机通讯的VB源程序
PLC与PC机通讯的VB源程序PLC与PC机通讯的VB源程序PLC与PC机通讯的VB源程序PLC与PC机通讯的VB源程序大体如下:我采用的是FX232BD通讯模块,协议就是FX通讯协议。
强制PLC为RUNPrivate Sub command1_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 dat = "01FFRR0" commli.Output = Chr$(5) + dat + SumChk(dat) End Sub强制PLC为STOPPrivate Sub command2_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 dat = "01FFRS0" commli.Output = Chr$(5) + dat + SumChk(dat) End Sub强制Y0为1Private Sub command3_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 commli.Output = “01FFBW0Y001011” End Sub强制Y0为0Private Sub command3_Click() Dim dat As String commli.OutBufferCount = 0 commli.InBufferCount = 0 commli.Output = “01FFBW0Y001010” End Sub设置电脑通信参数Private Sub Commlis() If commli.PortOpen = True Then commli.PortOpen = False End If If Not commli.PortOpen Then mPort = 1 ''通信口commli.Settings = "9600,N,8,1" commli.Handshaking = 0 commli.InputLen = 0 commli.OutBufferCount = 0 commli.InBufferCount = 0 commli.PortOpen = True End If Exit SubEnd SubPrivate Function SumChk(Dats$) As String Dim i& Dim CHK& For i = 1 To Len(Dats) CHK = CHK + Asc(Mid(Dats, i, 1)) Next i SumChk = Right(Hex$(CHK), 2)End Function。
基于VB6.0实现西门子PLC与PC间的TCP通讯
基于 VB6.0实现西门子 PLC与 PC间的TCP通讯摘要摘要:主要介绍在Microsoft Visual Basic 6.0开发环境下,通过Winsock1控件,用以太网的方式实现PC机与西门子1200/1500PLC系统之间数据通信的方法,并把该通信方法用在环卫压缩设备控制系统中。
关键词:PLC,VB,通信Realization of TCP Communication between Siemens PLC and PC Basedon VB6.0Abstact:This paper introduces data communication method between PC applications,which take Visual Basic 6.0 as their programming language and SIMATIC S7-1200 or S7-1500 PLC.Keywords:PLC,VB,communication.众所周知,工业自动化监控系统一般是采用组态软件或高级语言开发,而采用组态软件开发是需要买软件授权才能交付,虽然开发速度快,但成本较高而且后期功能扩展不够灵活,也无法开发更加复杂的业务,如实现信息化和工业化的有机融合,因此如何帮助开发者降低开发成本、提高工作效率,快速开发出对行业有显著帮助和价值的自动化监控系统是本文所涉及的话题。
该控制系统由西门子S7-1200 PLC、PC机等构成,其中PLC由以下组成:1214CPU模块(带以太网口),数字量输入/输出模块,模拟量输入模块。
1监控系统的通信参数系统运行时需要在PC与PLC之间通信的参数主要有如下:PC→PLC:压缩设备电机启动和停止指令、压缩指令;PLC→PC:压缩设备液压系统压力、温度和液位值,接近开关信号以及拉线位移传感器值。
2监控系统软件程序设计VB通信程序Dim Start,Stop, Compress As ByteDim Palue, Temperature,Level,Displacement As SingleDim Limit(5) As Byte_______________________________Private Sub connect_Click()Winsock1.Close ‘关闭连接Winsock1.Rem oteHost = "192.168.2.5" ‘与PLC的IP地址Winsock1.RemotePort = "2000" ‘与PLC端口号Winsock1.connect ‘关建立连接End Sub_______________________________Private Sub Form_Load()Winsock1.Close ‘关闭连接End SubPrivate Sub Close_Click()Winsock1.Close ‘关闭连接End Sub_______________________________Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)If Winsock1.state <> sckClosed ThenWinsock1.CloseWinsock1.Accept requestID '接受具有 requestID 参数的'连接。
运用C#编程通过OPC方式实现PC机与西门子PLC通讯
运用C#编程通过OPC方式实现PC机与西门子PLC通讯1、 OPC服务介绍西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台,它建立的PC站既为一些组态软件,如:WinCC、Protol等提供了与PLC的通讯平台,也提供了一套编程接口,可使用高级语言编程通过Simatic Net访问PLC数据。
本文讨论的主要就是这个编程接口,最新版的Simatic NET支持五种编程方式:<1>、ActiveX控件提供了一系列数据访问控件,以便于向VB6这种语言使用控件的方式与PLC通讯。
<2>、OPC自动化为VB6、Dephi等语言运用OLE 自动化的方式进行编程。
<3>、OPC用户接口这是专门为VC++提供的一种高效编程方式,其灵活程度与执行效率比前面的两种方式均要高得多。
<4>、针对微软的.NET平台的OPC用户接口这也是一种非常灵活的编程接口,不过它针对的是.NET平台,其提供了大量的.NET类库,以便于像VC#、等高级语言编程。
本文将详细的介绍该接口。
<5>、OPL XML接口顾名思义,主要是针对XML编程的。
对于<2>、<3>、<4>编程方式,他们各自又可以分为同步访问方式和异步访问方式。
按西门子的文档解释:同步通讯指的是当一个客户在访问服务器时,其他客户的访问必须等待,直到服务器处理完该客户的请求,才能继续进行下一个服务,异步访问与之正好相反,本文主要讲的是同步编程篇,异步篇以后再提供。
2、配置OPC服务器要进行编程,必须先配置服务器。
本文以Prfibus DP网络为例,介绍PC站的配置。
其内容主要来自西门子文档。
需要的软件:Step7 V5.3Simatic Net PC-Software CD 2005需要的硬件:至少为CP5611或以上级别,笔记本可以为CP5511,带DP口的S7-300 PLC(若使用Simatic NET的仿真功能可以不需要这些硬件,后面会介绍到)<1>、组态一个S7站,配置Profibus DP网络,其DP地址设为3,并下载到PLC,然后把网线由MPI口转到DP口。
PC与S7-200系列PLC通信的连接
PC与S7-200系列PLC通信的连接
S7-200系列PLC有通信方式有三种:一种是点对点(PPI)方式,用于与该公司PLC 编程器或其它人机接口产品的通信,其通信协议是不公开的。
另一种为DP方式,这种方式使得PLC可以通过Profibus-DP通信接口接入Profibus现场总线网络,从而扩大PLC的使用范围。
最后一种方式是自由口通信(Freeport)方式,由用户定义通信协议,实现PLC与外设的通信。
以下采用自由口通信方式,实现PC与S7-200系列PLC通信。
PC为RS232C接口,S7-200系列自由口为RS485。
因此PC的RS232接口必须先通过RS232/RS485转换器,再与PLC通信端口相连接,连接媒质可以是双绞线或电缆线。
西门子公司提供的PC/PPI电缆带有RS232/RS485转换器,可直接采用PC/PPI电缆,因此在不增加任何硬件的情况下,可以很方便地将PLC和PC的连接,也可实现多点连接。
PLC-PC-HMI之间通讯
一:计算机与S7-300PLC通讯(MPI)1.在STEP7里组态好PLC硬件2.插上MPI/USB电缆,根据提示安装好适配器的USB驱动3.在在菜单栏的“选项”下选择“设置PG/PC接口”,在弹出的对话框里找到PC Adapter,点击属性,进入“本地连接”选项卡,在连接到那里选择适配器对应的窗口,然后点击“确定”。
4.如果没有则在对话框的“接口”栏选择“选择”弹出对话框:在左边的“选择”下面选择PC Adapter 然后选择“安装”,然后重复第3步的动作。
注:该连接中需注意PLC的MPI口的波特率与适配器一致。
二.计算机与S7-300PLC通讯(以太网,交叉网线)1.在STEP7里组态好PLC硬件2.在硬件组态编辑器里,鼠标右击PN-IO前面的X1 ,在弹出对话框里选择“对象属性”在“常规”里选择“属性”,在弹出如上图的对话框里设置好PLC的IP地址和子网掩码,然后新建一个子网。
(PLC的IP需要和编程计算机在同一个网段)3.设置PG/PC接口,在图中的“应用程序访问点”选择STEP7,在图中的左对话框内选择计算机的网卡(TCP/IP),点击确定。
4.在STEP7菜单的“PLC”下面选择“编辑Ethernet节点”弹出如图对话框:选择“浏览”弹出如图:会自动搜索可访问的以太网节点,选择搜索出来的节点,可以通过点击“闪烁”看以太网模块上的指示灯是否闪烁,来测试网络是否连通。
然后点击“确定”。
回到上一图中,可更改IP地址或者网关。
然后点击“分配IP组态”,点击关闭。
三.PLC与HMI通讯(以太网,交叉网线)1.在wincc flexible的项目树形结构下的“通讯”下选择“连接”弹出如图:a.给连接命名,b.选择通讯驱动程序,c.在“在线”下选择开在“参数”对话框中a.设置好HMI的接口为“以太网”,以及IP地址。
b.在PLC设备下输入PLC的IP地址,以及PLC的CPU所占的插槽和机架。
勾选“循环操作”。
自由口模式下S7-200PLC与计算机的通信
自由口模式下S7-200PLC与计算机的通信本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。
---- 计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。
----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。
通信协议----在自由口模式下,通信协议是由用户定义的。
用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。
在自由口模式下,通信协议完全由梯形图程序控制。
指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:1.起始字符----起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。
2.指令类型----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。
3.目标PLC站地址----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标PLC 的站地址。
4.目标寄存器地址----在PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。
前两个字节表示寄存器类型,后两个字节表示寄存器号。
00 00(H):I寄存器区01 00(H):Q寄存器区02 00(H):M寄存器区08 00(H):V寄存器区例如:IB000的地址可表示为00 00 00 00(H)VB100的地址可表示为08 00 00 64(H)5.读/写字节数M----当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII 码后占用16个字节),可以根据自己的需要取用,M可以任意写入。
S7-200系列PLC与PC间基于自由口通讯的实现
第2 3期 20 0 8年 l 2月
科
学
技
术
与
工
程
V 18 N . 3 o . o 2 De .2 o c 08
17 -89 20 ) 365 -4 6 11 1 (0 8 2 -3 70
Sce c c oo y a d En ie rng in e Te hn lg n gn ei
这两个 中断是 为 了在 发送 和 接 受结 束之 后 , 把 相关 的设 置 和 变 量 恢 复 到 控 制 程 序 中 的 设 置 和
程度 的 限制 。
具 有控制 能力 强 、 积 小 、 干扰 能力 强 等 优 点 而 体 抗
得 到广泛 的应用 。s —2 0系列 P C提 供 了方 便 、 7 0 L 简洁、 开放 的通信 功能 , 用户 很 容 易地 进 行组 网 , 使
可充 分利用 P C友好 的人机 界 面实 现人 机对 话 和监 控功 能 , 可 以进 行 一 定 的辅 助 决 策 , 样 就 可 以 并 这
式对 用户来说 非常不 方便 。 () 2 购买 目前通用 的上 位机 组 态软 件 。这种 方
20 0 8年 7月 1 日收 到 7 第 一 作 者 简介 : 三 秀 ( 9 1 ) 浙 江 东 阳人 , 师 , 究 方 向 : 王 18 一 , 讲 研 过
系 ,C机始终 处于 主 导地 位 , 算 机 通过 串行 口发 P 计 送指令 到 P C 的通 信 端 口,L L P C通 过 R V 接 收 指 C 令信息 , 然后 对 指 令 进 行 译 码 , 码 后 再 调 用 相 应 译
三种 :
s —2 0系列 P C的通 信端 口主要有 两种通信 7 0 L
西门子S7-200PLC自由口实例代码
1 引言plc,omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。
自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。
本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visual basic进行编程,从而实现计算机与可编程控制器的直接控制。
该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。
2 s7-200通讯指令及特殊字节采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。
2.1 特殊标志字节s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb130为例,介绍其组成。
smb130各位的含义如下:pp:两位用于选择通讯的校验方式当这两位的组合是:00无校验01 偶校验10 无校验11 奇校验d:这一位用于选择通讯的数据位数d=1时7个数据位,d=0时8个数据位bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下:000 ——38400bps001 ——19200bps010 ——9600bps011 ——4800bps100 ——2400bps101 ——1200bps110 —— 600 bps111 —— 300 bpsmm: 用于通讯协议的选择,当这两位的组合是:00 ppi从站模式01 自由口通讯模式10 ppi主站模式2.2 接收信息的状态字节s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb186为例,介绍其组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PC与西门子PLC 通讯实例+源代码
此实例为PC调用西门子第三方驱动libnodave.dll,通过VB6.0编写而成,可成功从SIEMENS SL系统PLC中读取其DB数据块,input输入/output输出映像区,Marker位存储区数据.【libnodave.dll 可百度下载,或者Mail我】Private Sub Command1_Click()
Dim peer As String
peer = Form1.Text1.Text
ph = openSocket(102, peer)
If ph = 0 Then
MsgBox "Connected Falied", vbInformation, "Siemens-Hugl" Else
If ph > 0 Then '需要更换新的端口
di = daveNewInterface(ph, ph, "IFI", 0, daveProtoISOTCP, daveSpeed187k)
'建立新的连接
res = daveInitAdapter(di) '初始化适配器
If res = daveResOK Then
dc = daveNewConnection(di, 2, Rack, Slot)
'建立新的PLC连接
res = daveConnectPLC(dc) '连接PLC
If res = daveResOK Then
MsgBox "Connected Seccussfully!", vbInformation, "Siemens-Hugl"
End If
End If
End If
End If
End Sub
Private Sub Command2_Click()
If dc <> 0 Then
res = daveDisconnectPLC(dc) '断开连接
Call daveFree(dc) '释放内存
dc = 0
End If
If di <> 0 Then
res = daveDisconnectAdapter(di) '断开适配器
Call daveFree(di) '释放内存
di = 0
End If
If ph <> 0 Then
res = closePort(ph) '关闭端口
ph = 0
End If
MsgBox "Disconnected Successfully!", vbInformation, "Siemens-Hugl"
End Sub
Private Sub Command3_Click()
Dim RetCode As Long
Dim PLCTime As T_S7_PLCTime
RetCode = S7_ReadPLCTime(dc, PLCTime)
If RetCode <> daveResOK Then
MsgBox " Read PLC Time failed!", vbInformation, "Siemens-Hugl"
Exit Sub
End If
bel1.Caption = "PLC Date is " & Format(PLCTime.Jahr, "0000") & "-" & Format(PLCTime.Monat, "00") & "-" & Format(PLCTime.Tag, "00")
bel2.Caption = "PLC Time is " & Format(PLCTime.Stunden, "00") & "h" & Format(PLCTime.Minuten, "00") & "m" & Format(PLCTime.Sekunden, "00") & "s" & Format(lisekunden, "0") & "ms"
End Sub
Private Sub Command4_Click()
res = daveReadBytes(dc, daveFlags, 0, 0, 16, 0)
If res = daveResOK Then
v1 = daveGetS32(dc)
MsgBox "MD0 is " & v1
v2 = daveGetS32(dc)
MsgBox "MD4 is " & v2
v3 = daveGetS32(dc)
MsgBox "MD8 is " & v3
v4 = daveGetFloat(dc)
MsgBox "MD12 is " & v4
v5 = daveGetFloatAt(dc, 12)
MsgBox "MD12 Float is " & v5
Else
MsgBox "Error", vbCritical, "SIEMENS-Hugl"
End If
End Sub
Private Sub Command5_Click()
res = daveReadBytes(dc, daveDB, 21, 3, 1, 0)
If res = daveResOK Then
MsgBox daveGetS32(dc)
Else
MsgBox "Fuck"
End If
End Sub
2015-12-29。