课程中心
HOME
课程中心
正文内容
plc1200机器人编程 西门子PLC配合组态王怎么样?西门子1200实例讲解!实用编程教程
发布时间 : 2024-10-08
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子PLC配合组态王怎么样?西门子1200实例讲解!实用编程教程

本示例通过一个简单的计数器程序说明相关硬件和软件的配置和简单使用。

组态王编写的人机界面可以控制并监测PLC的寄存器状态。左上角的按钮可以控制M0.0的关断,从而可以控制计数器的复位,计数器可以对左下角的按钮按下次数进行计数,计数值可以直接显示,也可以通过仪表显示。

硬件配置方法:我们选用的通信方式是基于以太网卡的TCP/IP协议通信

所以,我们直接使用网线将S7-1200和配置有网卡的计算机的以太网接口相连

TIA Portal与S7-1200的软件配置

1 使用博途组态S7-1200并编写程序,编写完成之后编译并下载

2 PLC与组态王通过以太网的方式通信的设置:

A、确认计算机中安装有以太网卡,并与PLC 连接到同一网络中(直接通过网线直连)。

B、通过编程软件设定IP地址和子网掩码,并下传到PLC中如IP地址(192.168.0.1)、子网掩码(255.255.255.0)。

C、为计算机设定IP地址和子网掩码,如IP地址(192.168.0.110)、子网掩码(255.255.255.0)。

D、使用ping 命令,保证能ping 到PLC 站。

3 PG/PC 接口配置,通信测试,以检查运行组态王的计算机是否和PLC正常通信

4 测试正常之后,即可在组态王开发项目

1 编写程序并下载

计算机与S7 1200PLC之间的通信是基于以太网卡的TCP/IP协议通信,我们可以查看组态的PLC设备的TCP/IP地址,默认为192.168.0.1,

编写、编译并下载程序

编写、编译并下载程序

在右侧的指令窗口中可以拖入进基本指令

编写、编译并下载程序,编写好的程序如下图:

可在PLC变量表里面为变量命名

在线监控可在线监控PLC寄存器状态

2 PLC与组态王通过以太网的方式通信的设置:

1、确认计算机中安装有以太网卡,并与PLC连接到同一网络中(直接通过网线直连)。

2、通过编程软件设定IP地址和子网掩码,并下传到PLC中如IP地址(192.168.0.1)、子网掩码(255.255.255.0)。 此步骤已经在博途中组态PLC的过程中完成了,通过PLC属性查看以太网地址。

3、为计算机设定IP地址和子网掩码,如IP地址(192.168.0.110)、子网掩码(255.255.255.0)。

这里以Win7系统为例

打开网络共享中心,双击更改适配器选项

修改IP地址

修改IP地址

4、使用ping 命令,保证能ping 到PLC 站。

在开始菜单“搜索程序和文件”中输入 cmd 指令,进入DOS命令窗口

在DOS 界面中输入命令:ping 192.168.0.110

然后回车。注意:在ping 和地址之间有一个空格,如下图所示。

观察DOS 界面中的ping 指令返回值。如包括time=1ms 或time<1ms 及TTL 等于某个数值,

且Lost=0,即ping 指令返回值正常,表明以太网连接正常。如下图所示。

如果连接不正常,可能如下图所示,ping 指令返回值显示timed out 或Lost 值不为0,

表示本机IP 地址和目标IP 地址连接不通,建议检查一下连接线缆及两台计算机的IP 地址设置。

(3)PG/PC 接口配置,通信测试,以检查运行组态王的计算机是否和PLC正常通信

1.打开Set PG/PC Interface。

在操作系统中点击“Start”菜单,打开“Control Panel”选项,在控制面板中,选中“大图标”显示,即可找到Set PG/PC Interface,如图。双击打开。

如图,在 Access Point of the Application(应用程序访问点)的下拉列表中选择 <Add/delete>,输入名称。

在 Interface Parameter Assignment Used 中点选Realtek PCIe FE Family Controller.TCPIP.1(注意:应根据运行计算机实际工作的网卡名进行选择,务必选择不带Auto 的),然后Access Point of the Application 内显示“CP-TCPIP - Realtek PCIe FE Family Controller.TCPIP.1 即可。

(4)通信测试,以检查运行组态王的计算机是否和PLC正常通信

我们的通信方式是TCP/IP,在组态王中定义的IO设备应该使用TCP/IP协议

注意设备地址的填写,冒号前面是我们在博途组态的PLC的地址,冒号后面为S1200的默认槽号,为0。为:192.168.0.1:0

通信测试,以检查运行组态王的计算机是否和PLC正常通信

然后使用组态王KingVIEW 6.55组态人机界面

(1)定义I/O设备:前面在测试设备的过程中,我们已经定义好了IO设备,此处略去

(2)定义I/O变量

根据程序,选择需要检测和控制的寄存器变量,在组态王数据词典中定义相应的IO变量。

先为复位开关M0.0建立一个IO变量

我们为其他寄存器定义好的I/O变量如下图:

其中,变量USB_Com用来显示组态王与PLC的通信状态,以帮助我们判断是否通信正常。

关闭(0)表示通信正常,打开(1)表示通信异常,也可以自行更改。或者可以在组态王的产品帮助文档中输入CommErr以查看使用说明。

全部建立好的变量如下图:

(3)新建并组态画面

现为复位开关M0.0以及计数M0.1组态开关按钮

现为复位开关M0.0关联PLC的M0.0

现为复位开关M0.0关联动作:鼠标按下时接通,弹起时断开。

同理我们为M0.1关联它的变量以及动作。

组态一个指示灯关联输出Q0.2,以便直观地观察复位状态

组态好的按钮和指示灯可以通过颜色显示状态之外,还可以通过工具箱的文本用“打开”或者“关闭”的文本标识状态。

为建立好的文本关联变量

使用同样的方法为按钮M0.1以及指示灯Q0.2建立文本并关联变量。

同时,我们再建立一个文本,关联计数器的计数值,以便在人机界面中查看计数值。

同时,我们也可以从图库中选取一个仪表,用刻度显示计数值。

此外,我们再建立一个文本并关联通信状态变量USB_Com,以便我们在人机界面运行时可以判断通信是否正常。

(4)保存并运行组态好的人机界面

可同时打开博图的在线监控,组态王的人机界面有指令时,博途也可以同时监测到寄存器的状态变化

自动化工程师:经典干货,从浅到深分享西门子S7-1200 PLC编程

CPU 的目的承载操作系统,组织与具体控制任务无关的所有功能 。具体包括:处理暖启动、刷新输入 /输出映像、调用用户程序、检测中断事件、调用中断组织块、检测和处理错误、管理存储器、处理通信任务等等。

它的工作模式

停止( stop ),启动( startup ),运行( running );

启动( startup ):CPU从停止转换到运行时为启动模式。四个要点——清输入,始输出,启OB,排中断。具体为清理输入缓冲区( I 区),初始化输出缓冲区( Q 区),执行启动 OB,排列中断队列,但不处理。 注意,此时启动 OB 读取 I 区时结果为 0,必须读取物理输入。

运行( running ):五个要点 —— 写输出,写输入,行 OB,自诊断,附断信。

具体为 Q 区写输出,输入写 I 区,执行用户程序,执行自诊断,如此循环。循环中任何时候都会处理中断和外来通信。

图 1 CPU的启动( startup)和工作( running)

停止( stop ):四个要点 —— 停程序,禁输出,不刷新,仅通信诊断。

具体为停止执行用户 OB,禁止输出或保持最后输出值,不刷新输入输出过程映像,仅仅处理通信和自诊断。

CPU 的工作方式

扫描式工作:单片机是逐行工作, PLC 是逐行扫描。逐行工作指下一指令的执行始于上一指令的结束,逐行扫描指每循环扫描所有指令并刷新变量。

CPU 的扫描周期:自诊断 —处理通信 —读输入 —执行用户程序 —写输出 。扫描周期是弹性的, 多数情况越小越好,组态时可设置最大值,实际扫描周期超出最大值 CPU报错。

编程基础

编程单位

代码块 ,具体分为以下几类:

表 1 用户程序代码块

组织块 OB(organization block ):由操作系统调用, OB 间不可互相调用。 OB 可调用子函数如 FB/FC 。有程序循环组织块 (扫描循环执行) 、启动组织块 (startup ,启动时执行一次,默认编号 100 )、中断组织块 。

功能 FC(function ):子函数, 一个扫描周期内执行完毕 。

功能块 FB(function block ):子函数,内部含有静态变量,须附加背景数据块 DB,多数情况下需要多个扫描周期内执行完毕。

背景数据块 DB/ 全局数据块 DB(data block ):存储全局静态数据。

编程语言

梯形图( ladder diagram, LAD ):类似继电器电路图,由触点、线圈和方框表示的指令框组成。特别适合于数字量逻辑控制,直观易懂。假想“能流” (powerflow )自上而下,自左而右。

图 3 梯形图示例

功能块图( function block diagram, FBD):类似于输电的图形逻辑符号,用类似与或非门表示逻辑运算关系。

图 4 功能块图示例

结构化控制语言( structured control language ):类似于 PASCAL、C 语言的简化的高级语言。语言功能强于图形语言,可读性强于指令语言,适于编写算法复杂的程序,不如图形语言直观。

图 5 结构化控制语言示例

数据存储

过程映像输入( I ):可按照位、字节、字、双字访问。 I0.0,IB0, IW0 ,ID0 。

物理输入( I:P):立即读取输入。

过程映像输出( Q):可按照位、字节、字、双字访问。 Q0.0,QB0,QW0,QD0。

物理输出( Q:P):立即写输出。

位存储区( M):全局性的, 可保持 ,用于存储操作的中间状态或其它控制信息,可按照位、字节、字、双字访问。

临时局部存储区( L):块的临时局部数据, CPU运行时自行分配。

数据块( DB):可保持 。

数据类型

用于指定数据元素大小以及如何解释数据。

基础数据类型 :Bool(1bit )、Byte(8bit )、Word(16bit )、Dword(32bit )、USint(8bit )、Sint(8bit )、Uint (16bit )、Int (16bit )、UDint (32bit )、Dint (32bit )、Real(32bit )、LReal(64bit )、Sturct 、数组。

时间和日期 :Time(32 位 IEC 时间,T#1d_2h_15m_30s_45ms )、Date(16 位日期值,D#2009‐12‐ 31)、TOD(32 位日时钟值, TOD#10:20:30.400 )、DT(64 位日期和时间值, DTL#2008 ‐12‐ 16‐ 20:30:20.250)。

字符和字符串 :char( 8bit 单个字符)、String (256 个 byte ,存储最长 254 个字符),关于String 特别说明如下, 第一个字节存储最大字符串长度,第二个字节存储当前字符串长度 :

表 2 String 数据类型示例

PLC 数据类型 :可自定义在程序中多次使用的数据结构。

指针数据类型: pointer 、any、variant (不占用存储器的任何空间) 。

Any 示例: P#DB11.DBX20.0INT10 (DB11 中从 DBB20.0 开始的 10 个字);

Any 示例: P#M20.0BYTE10 (从 MB20.0 开始的 10 个字节)

Any 示例: (输入 I1.0 )

数据片段访问

按位访问: 变量名称 >".xn 、"<数据块名称 >".<变量名称 >.xn。

按字节访问: 变量名称 >".bn 、"<数据块名称 >".<变量名称 >.bn。

按字访问: 变量名称 >".wn 、"<数据块名称 >".<变量名称 >.wn 。

AT 访问: 以不同于原有变量数据类型的方式访问变量。如利用 arrayofbool 访问 byte 变量。具体步骤:

在待覆盖变量下方选择 AT 变量类型,编辑器随即创建该覆盖;

图 6 AT覆盖( 1)

重命名 AT 变量名称,选择用于覆盖的新的数据类型、结构、数组。

图 7 AT覆盖( 2)

编程准备

安装 STEP7Basic/ProfessionTIAPortal (eg.V13 );

RJ‐ 45接口网线连接 PC和 S7‐ 1200(eg.1214C/DC/DC/DC );

给 S7‐ 1200以及其他模块供电 DC24V 。

一般步骤

新建项目;

组态硬件配置; 特指 硬件组态 ,指在设备和网络编辑器中生成一个与实际系统对应的虚拟系统, PLC 模块的型号、订货号、版本、安装位置、设备通信连接、参数配置都应当与实际硬件系统完全相同。

编写用户程序;

编译和下载至 ;

在线监测设备运行情况,调试修改。

指令

能流

能流流经某个具备 EN 和 ENO 的指令,并不一定代表该指令功能执行完成,只代表该扫描周期的扫描完成;算数运算、 bool 变量操作等单扫描周期指令的 ENO输出代表该指令执行完成。

单周期指令和多周期指令

单扫描周期指令 将在本扫描周期内执行完毕;单扫描周期指令的循环操作也在本扫描周期内完成; 多扫描周期指令 的 EN 或者 REQ只使能一个扫描周期,某些指令将不能成功执行;例如大多数的通信指令。能流与扫描FB/FC 的 EN 端将为能流提供扫描通道, EN 端断路,能流无扫描通路, 内部变量将不再刷新,即该函数不再执行;当 FB/FC 的 EN 端总是使能, Enable 输入断开,块内部仍有能流通路,相应变量会被扫描以致刷新,例见下图:

图 8 能流‐内部扫描

图 9 能流‐内部不扫描

前者 FB12 内部的变量总会被扫描,而后者在 M3.0 或 DB_Valve.done 为 1 时,内部变量不会被扫描;相应的,前者 done 变量将被下一扫描周期置 0,而后者 done 置 1 后将因能流不通不能扫描而自行保持;

变量赋值顺序

变量被多次赋值时的先后顺序很重要。 因为变量的值总会被最后执行动作更新, 前面的值将被覆盖,例如下图:

程序初衷为当接受响应完成时 ERR 置位,或响应超时 ERR 置位。上述程序是可以完成正常功能的;但若二者互换,如下图:

接收超时时, ERR 不会置位,因为 rev_done 为 0,ERR 被复位!

FB 与 FC 的参数

FB 块的输入输出形参存储于背景数据块中,在调用该 FB 时实参可选;

FB 块的 输入输出参数 虽不是静态变量,但亦有 保持功能 ,具体视程序而定;

FC 块的输入输出参数是临时内存,必须指定实参才能运行

FC 中临时( Temp)变量也不会自动清零

上升沿和下降沿的读取

单个扫描周期中,一个布尔变量的上升 / 下降沿只能读取一次;因为读取一次之后,其 Pre变量已被立即刷新,后续的读取不能成功读到该变量的状态变化。

数组的使用

数组访问越界将导致 CPU错误, ERR 灯闪烁;

使用数组索引时(例如 array[i] )一定要初始化,上电时该变量内存为随机分配,不一定为0;

SEND_PTP

EN 是使能该命令的能流, REQ 触发该命令的执行,上升沿和保持为 1 都只触发命令 执行一次。

REV_PTP

使用自由口通信协议时, 必须 指定 消息的开始和结束条件 (Condition ),保证正确、及时的发送和接收, 否则会因非必要的延时而增大通信负载; RCV_CFG命令用于配置消息开始和结束条件。

Message timeout/Response timeout messagetimeout 是指从接收到第一个字符起的等待时间,该时间超出后将不再接收消息;

responsetimeout 是指从传送结束到接收到第一个字符之间的时间,超出该时间将不再接受消息,视为消息结束。

STEP7 在线监控的刷新频率

STEP7 中的梯形图操作数、能流的监控特征色(蓝绿) 、以及监控表中的布尔变量的刷新频率有限, 可能不能反映真实的实时运行状况, 可借助一个累加器来监视程序的运行状态, 例如下图:

图 10 累加器监控程序

数组下标越界与数据类型

一数组共计 15 个元素, array[0..14] ,执行队列先入先出操作,循环内判断索引是否大于 0:

图 11 数组索引的错误判断

执行结果将为数组下表访问越界。 因为索引的数据类型定义为 USING,即无符号 8 位整数,值域为 0–255 ,当 idxpre 为 0 时,下一循环的 DEC操作导致其变为 255 而非 ‐1,所以,正确的做法是重设索引数据类型为 sint ,或修改判断条件。

相关问答

1200plc的编程方法有哪几个?

这个问题,不好回答。我只能说一下思路。控制都容易,温度传感器变送出4---20mA信号,给PLC模拟量模块,然后模拟量输出模块输出4---20mA信号给你要控制的设备...

plc1200如何控制步进电机编程?

PLC1200可以通过编程控制步进电机的运动。首先,需要在PLC1200的编程软件中配置步进电机的驱动器和相关IO模块。然后使用PLC1200的编程语言(通常是类似于Ladde...

plcs71200控制方案?

1.plcs71200控制方案可以实现各种自动控制系统中的控制逻辑,包括信号采集、逻辑控制、运动控制等。2.对于plcs71200控制方案,其可以应用于物流、工厂、通讯...

plc1200自锁怎么编程?

在PLC1200中实现自锁功能的编程需要使用LAD或者FBD语言进行编写。首先,需要定义一个控制变量,用来存储锁定状态。当需要锁定某个设备时,将该变量赋值为1。然...

S7-1200PLC使用什么编程软件?

看书一般现在教学使用的都是西门子系列产品的s7-200或者s7-300的plc根据教材弄清原理然后下载plc仿真编程软件进行简单的编程编写如果想要精通需要大量...

西门子1200编码器编程实例?

没有明确的结论。因为西门子1200编码器的编程实例需要根据具体的应用场景和要求而定,不能一概而论。需要对具体使用的PLC品牌、型号、版本以及使用的编程软件...

怎样在电脑里写入plc编程?

PLC根据它的品牌、型号来选择编程软件,比如,西门子:S7-200系列PLC编程软件用STEP7-MicroWINV4.0SP9版本软件;S7-200SMART系列PLC编程软件用STEP7...

西门子1200定时器怎么编程?

1西门子1200定时器可以进行编程。2使用西门子STEP7软件对1200定时器进行编程,需要进行以下步骤:a.创建新项目,选择1200系列PLC;b.在硬件配置中...1西...

1200plc控制变频器频率怎么写程序?

编写PLC控制变频器频率的程序需要以下步骤:首先,配置PLC与变频器之间的通信参数,确保能够实现数据传输。然后,使用PLC编程软件创建一个变频器控制的函数块...

1200plc定时器指令编程实例?

回答如下:以下是一个1200plc定时器指令编程实例:在该示例中,我们将使用S7-1200PLC中的TIMER指令来创建一个简单的定时器。该定时器将在每次循环中递增一个计...

 宿曜传  fatestaynight 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部