课程中心
HOME
课程中心
正文内容
集成plc编程实例 西门子PLC的USS通信程序原来是这样编写,赶紧转发收藏
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子PLC的USS通信程序原来是这样编写,赶紧转发收藏

点击上方"PLC发烧友"关注我们吧!

S7-200 SMART本体集成的 RS 485 通信口可以工作在自由口模式下,支持 USS 通信协议。

S7-200 SMART 与驱动装置(变频器)进行 USS 通信时可以:

1)根据驱动装置的具体 USS 通信规范,我们自己编程实现 USS 通信。此方式可以保证该驱动装置的所有 USS 通信功能都能得到使用;

2)使用西门子提供的 USS 通信指令库,实现与 Micro Master 系列的 MM3/MM4 和 SINAMICS G110/V20 的USS 通信。此指令库只能有限地支持与其他驱动装置的 USS 连接。

使用西门子提供的 USS 指令库,这样我们就不必自己配置复杂的 PKW/PZD 数据,或者计算校验字节。

S7-200 SMART的 USS 编程主要包括如下几个步骤:

参数设置和硬件接线部分可参考我们技成培训网观看《西门子变频器参数设置和实操训练》课程的相关章节,在这不再阐述;

调用USS初始化指令

S7-200 SMART USS 标准指令库包括 USS_INIT、USS_CTRL、USS_RPM_X、USS_WPM_X等指令。调用这些指令时会自动增加一些子程序和中断服务程序。

USS 库应用首先要进行 USS 通信的初始化。使用 USS_INIT 指令初始化 USS 通信功能。

图 1. 选择 USS_INIT 指令

打开 USS 指令库分支,像调用子程序一样调用 USS_INIT 指令。

图 2. 调用 USS_INIT 指令

图中:

EN:初始化程序 USS_INIT 只需在程序中执行一个周期就能改变通信口的功能,以及进行其他一些必要的初始设置,因此可以使用 SM0.1 或者沿触发的接点调用 USS_INIT 指令;

Mode:模式选择,执行 USS_INIT 时 ,Mode 的状态决定在通讯端口上是否使用 USS 通信功能;

=1 设置为 USS 通信协议并进行相关初始化

=0 恢复为 PPI 协议并禁用USS通信

Baud:USS 通信波特率。此参数要和变频器的参数设置一致;

=1200

1200 bit/s

2400 表示2400 bit/s

4800表示4800 bit/s

9600表示9600 bit/s

19200表示19200 bit/s

38400表示38400 bit/s

57600表示57600 bit/s

115200表示115200 bit/s

Port: 0 = CPU 集成的 RS485 通讯端口;=1可选CM01 信号板。

Active:此参数决定网络上的哪些 USS 从站在通信中有效。详见下面的说明;

Done:初始化完成标志

Error:初始化错误代码;对应的代码如下:

USS 库指令错误代码

错误代码

错误描述

0

无错误

1

驱动装置无响应

2

来自驱动的响应中检测到校验和错误

3

来自驱动的响应中检测到奇偶校验错误

4

用户程序干扰引起错误

5

尝试执行非法命令

6

提供了无效的驱动装置地址

7

通信口未定义为 USS 协议

8

通信口忙于处理其他指令

9

驱动装置速度设定输入值超限

10

驱动装置返回的信息长度不正确

11

驱动装置返回报文的第一个字符不正确(不是 02 h)

12

驱动装置返回的长度信息不被 USS 指令支持

13

响应的驱动装置不正确

14

提供的 DB_ Ptr 地址不正确

15

提供的参数号不正确

16

选择了错误的协议

17

USS 已激活,不能改变

18

指定了非法的波特率

19

无通信活动:驱动装置未激活

20

驱动装置返回的参数值不正确或包括错误的代码

21

请求一个字长的数据时返回了一个双字数据

22

请求一个双字长的数据时返回了一个字数据

23

端口无效

24

信号板(SB) 端口1缺失或未组态

Active参数

USS_INIT 子程序的 Active 参数用来表示网络上哪些 USS 从站要被主站访问,即在主站的轮询表中激活。网络上作为 USS 从站的驱动装置每个都有不同的 USS 协议地址,主站要访问的驱动装置,其地址必须在主站的轮询表中激活。USS_INIT 指令只用一个 32 位长的双字来映射 USS 从站有效地址表,Active 的无符号整数值就是它在指令输入端的取值。

表 1. 从站地址映射

在这个 32 位的双字中,每一位的位号表示 USS 从站的地址号;要在网络中激活某地址号的驱动装置,则需要把相应位号的位置设为二进制“1",不需要激活 USS 从站,相应的位设置为”0"。最后对此双字取无符号整数就可以得出 Active 参数的取值。

在表 1 的例子中,如果使用站地址为 3 的 MM 440 变频器,则须在位号为 03 的位单元格中填入二进制“1"。其他不需要激活的地址 对应的位设置为”0"。取整数,计算出的 Active 值为 00000008 h,即 16#00000008,也等于十进制数 8(如图 2.中的 e.)

建议使用 16 进制数,这样可以每 4 位一组进行加权计算出 16 进制数,并组合成一个整数。当然也可以表示为十进制或二进制数值,但有时会很麻烦,而且不直观。

如果一时难以计算出有多个 USS 从站配置情况下的 Active 值,可以使用 Windows 自带的计算器。将其设置为科学计算器模式,可以方便地转换数制

调用驱动装置控制指令

USS_CTRL 指令用于对单个驱动装置进行运行控制。这个功能块利用了 USS 协议中的 PZD 数据传输,控制和反馈信号更新较快。

图3.USS_CTRL指令

在 USS 通信指令库分支中选择 USS_CTRL 指令。

EN:使用 SM0.0 使能 USS_CTRL 指令

RUN:驱动装置的启动/停止控制

=0停止=1运行

此停车是按照驱动装置中设置的斜坡减速指电机停止.

OFF2:停车信号 2。此信号为“1"时,驱动装置将封锁主回路输出,电机自由停车

OFF3:停车信号 3。此信号为“1”时,驱动装置将快速停车

F_ACK:故障确认。当驱动装置发生故障后,将通过状态字向 USS 主站报告;如果造成故障的原因排除,可以使用此输入端清除驱动装置的报警状态,即复位。注意这是针对驱动装置(变频器)的操作。

DIR:电机运转方向控制。其“0/1”状态决定运行方向

Drive:驱动装置在 USS 网络上的站号。从站必须先在初始化时激活才能进行控制

Type:向 USS_CTRL 功能块指示驱动装置类型

=0表示MM3系列,或更早的产品

=1表示MM 4 系列,SINAMICS G 110,SINAMICS V 20

Speed_SP:速度设定值。

该速度是全速的一个百分数;“Speed_SP”为负值将导致变频器反向运行。

Resp_R:从站应答确认信号。

主站从 USS 从站收到有效的数据后,此位将为“1"一个程序扫描周期,表明以下的所有数据都是最新的

Error:错误代码。0 = 无出错。其他错误代码请参考USS 库指令错误代码

Status:驱动装置的状态字。此状态字直接来自驱动装置的状态字,表示了当时的实际运行状态

详细的状态字信息意义请参考相应的驱动装置(变频器)手册。

Speed:驱动装置返回的实际运转速度值,实数。

Run_EN:运行模式反馈,表示驱动装置是运行(为 1)还是停止(为 0)

D_Dir:指示驱动装置的运转方向,反馈信号

Inhibit:驱动装置禁止状态指示(0 - 未禁止,1 - 禁止状态)。禁止状态下驱动装置无法运行。要清除禁止状态,故障位必须复位,并且 RUN, OFF2 和 OFF3 都为 0

Fault:故障指示位(0 - 无故障,1 - 有故障)。表示驱动装置处于故障状态,驱动装置上会显示故障代码(如果有显示装置)。要复位故障报警状态,必须先消除引起故障的原因,然后用 F_ACK 或者驱动装置的端子、或操作面板复位故障状态。

此 USS_CTRL 功能块使用了 PZD 数据读写机制,传输速度比较快。但由于它还是串行通信,而且还可能有多个从站需要轮询,因此无法做到“实时”响应。要实现高要求的快速通信,应该使用 PROFIBUS-DP 等网络,同时更换主站为更高级的控制器。

USS_CTRL 已经能完成基本的驱动装置控制,如果需要有更多的参数控制选项,可以选用 USS 指令库中的参数读写指令实现。

调用驱动装置参数读写指令

USS 指令库中共有 6 种参数读写功能块,分别用于读写驱动装置中不同规格的参数。

它们是:

USS 参数读写指令采用与 USS_CTRL 功能块不同的数据传输方式。由于许多驱动装置把参数读写指令用到的 PKW 数据处理作为后台任务,参数读写的速度要比控制功能块 慢一些。因此使用这些指令时需要更多的等待时间,并且在编程时要考虑到,进行相应的处理。

读参数指令

以下的程序段读取SINAMICS V20 实际频率(参数 r0021)。由于此参数是一个实数,因此选用实数型参数读功能块。

参数读写指令必须与参数的类型配合。

调用 USS_RPM_R 指令读取 SINAMICS V20 的实际频率

EN:要使能读写指令此输入端必须为 1

XMT_REQ:发送请求。必须使用一个沿检测触点以触发读操作,它前面的触发条件必须与 EN 端输入一致

Drive:要读写参数的驱动装置在 USS 网络上的地址

Param:参数号(仅数字)。此处也可以是变量

Index:参数下标。有些参数由多个带下标的参数组成一个参数组,下标用来指出具体的某个参数。对于没有下标的参数,可设置为 0

DB_Ptr:读写指令需要一个 16 字节的数据缓冲区,用间接寻址形式给出一个起始地址。此数据缓冲区与“库存储区”不同,是每个指令(功能块)各自独立需要的。

此数据缓冲区也不能与其他数据区重叠,各指令之间的数据缓冲区也不能冲突

Done:读写功能完成标志位,读写完成后置 1

Error:出错代码。0 = 无错误

Value:读出的数据值。该数据值在 “Done”位为1时有效。

EN 和 XMT_REQ 的触发条件必须同时有效,EN 必须持续到读写功能完成(Done 为 1),否则会出错。

来源:PLC发烧友,作者:技成培训网-眭相建,转载请注明出处!文章源程序可免费提供,私信回复:源程序 免费领取! 评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。

S7-1500冗余PLC自控项目实例分享

摘要:本文介绍了一种基于西门子S7-1500冗余PLC的污水处理厂自动控制系统,包括该项目的软硬件设计、上位机WINCC的应用以及网络结构。

关注公众号【自动化与工程技术】,获取更多自动化资讯!

(一)项目概述

随着我国经济的迅速发展,工业化进程越来越快再加上人们生活水品的提高,工业以及生活污水的排放日益增多,如何才能保护水资源让其循环利用达到节能减排,是目前急需解决的,正是污水处理项目对水资源的改善以及人民生活水平的提高有着重大的意义。而冗余的控制系统可以减少故障停机时间提高系统稳定性,将大大提高污水处理的效率。

此项目是四川省乐山市井研县第二污水处理厂,工程范围为污水处理自控系统设计、供货、安装、编程调试,包含厂区主站控制系统,中控室上位机,将厂区第三方设备预留的硬接线以及通讯接入总控室,组成污水处理系统(包含深床反硝化、精准曝气系统等),主要采用了西门子1515R冗余PLC,每日可以稳定处理22000t污水。

(二)工艺流程

此污水处理采用了多级的生化反应处理、高效沉淀、深床反硝化以及接触消毒,污泥采用了浓缩、脱水以及压滤等进行处理。该厂工艺流程如下图所示:

(三)选型方案

根据污水处理厂现场情况,主要有以下需求:

(1)需采用冗余系统、包括控制器冗余、电源冗余以及不间断电源,保障在部分硬件出现故障能够及时切换到备用模块,在工厂出现断电异常保障系统正常运转,实现系统的稳定可靠且连续的运行。

(2)IO点数有大于15%裕量。

(3)两台现场级控制柜可操作。

(4)中控室远程监控以及操作,包含两个操作员站以及一台工程师站。

PLC系统主要材料选型表如下图:

(四)硬件配置及系统结构

该自控系统最终设计采用包括:

(1)1515R冗余CPU,为了实现更高的可用性。在冗余操作的系统中,即使有个别自动化组件出现故障也不会妨碍污水的连续处理。两个CPU将并行处理相同的项目数据和相同的用户程序。两个CPU通过冗余连接进行同步,如果一个CPU出现故障,另一个CPU就会接替它对整个自控系统进行控制;

(2)ET200MP分布式远程IO控制站,PLC1柜主要控制污水收集至生化处理段工艺,PLC2柜主要控制沉淀工艺、添加剂处理以及污泥处理工艺段。现场层的两套分布式IO通过IM155-5 PN HF高性能接口模块将IO模块(具有 IP20 防护等级,采用和 S7-1500 相同的I/O 模块,具有很好的通用性集成到各自的远程站)。分布式设备通过PROFINET和上层的可编程控制器1515R冗余CPU实现快速的数据交换,开放的PROFINET通讯标准,给自动化系统带来灵活的连接方式。统一的工程开发,透明的诊断,完美实现与PLC和HMI在博途中的集成;

(3)现场触摸操作屏采用西门子TP1200精智12寸面板 ,与S7-1500控制器完美协同,将各个远程站的数据(包括流量、水质、溶解氧、液位等)显示在触摸屏上面,可满足实时显示现场设备运行状态并且远程点控设备,方便现场人员整体操控;

(4)中控室包括一台工程师站和两台操作员站,采用编程组态软件有:WinCC 7.4、博途V16.0。其中WinCC集成图形系统、报警消息系统、归档系统、报表系统、用户管理系统以及脚本系统。完美解决污水处理厂的流程显示、组显示、报表显示、趋势显示、报警记录等。在各个操作站试图中可以自动控制、点动控制现场设备并监控其运行状态,参数设置等。其中博途V16.0完美兼容1500冗余CPU,包括在线下载程序无需停机、CPU高版本固件更新、在冗余环外组态S1设备等,提高本次调试效率也方便后期污水处理厂电气工程师的维护工作;

(5)网络部分包括:1515R冗余环网中有支持冗余的2台光纤交换机,WINCC监控系统包括两台支持环网冗余的光纤交换机以及2台光电转换器用作与第三方CPU通讯;

(6)第三房设备包括:

由200smartCPU控制的鼓风机自动控制系统、污泥脱水系统、PAC加药、加氯和乙酸钠投加系统;由S7-300CPU控制的反硝化深床滤池和反冲洗风机房自动控制系统;由K37环保数采仪采集的进出水水质检测设备。

(7)该自动控制系统网络结构如下图所示:

(五)软件开发

本次调试内容主要为:主站控制系统手自动程序编写、触摸屏运行画面组态;中控室WINCC画面组态与第三方设备通讯;PLC与第三方设备通讯。

(1)组态设备:

通过博途软件对主站1515R冗余控制系统进行组态,需要注意的有:

对于1515R冗余CPU组环网必须用X1,同时X1 PR2口需要互相连接用作冗余CPU的同步,而且在这之间不能连接其他的设备;在MRP环网中的设备必须支持MRP环网功能,尤其是环中的交换机需要支持MRP环网以及转发功能,同时需要对交换机的冗余端口、IP地址进行设置,如此才能方便与环外设备通讯;在本项目中采用了双网段,X2所在网段用作与上位机通讯,需要启用系统IP,以便上位机与冗余系统通讯;对组态的设备需要分配对应的IP地址和介质冗余角色。

组态硬件设备如下图所示:

(2)控制方式:

现场设备的主要控制方式为:

通过采集到的本地远程信号来决定设备是由现场操作箱控制还是由PLC自动控制系统控制;通过采集到的运行和故障信号来反馈现场设备的运行状态;通过采集到的现场模拟量信号包括:液位、水质、溶解氧等的变化来自动控制相关设备的启停;通过采集到的模拟量信号来反映污水处理的情况是否达标以及生产量;通过自控系统给定模拟量信号来控制相关阀门开度、电机转速等。

(3)程序编写:

此项目主要采用了梯形图的编程方式,程序主要包括:程序调用快、模拟量块、电机块、自动逻辑块、自定义公共块。由于此项目包含大量电机和阀门,而且各自运行的方式大致一样,所以此项目编写了公共的电机FB块和阀门FB块,同时较多的仪表我们采用了公共的模拟量处理FC块来进行转换。对于1515R冗余CPU的程序下载,需要注意的有:

通过博途V16将CPU固件升级至V2.8版本,才可在设备运行时备份,而无需中断运行过程。设备不间断运行可有效地降低设备停机时间,保证每日的污水处理量。冗余PLC第一次下载时,在下载窗口不显示主备关系,只显示MAC地址,此时要根据冗余PLC上的显示面板查看主备关系,找到主PLC对应的MAC地址,下载时再根据MAC地址选择正确的主PLC执行下载,如果选择备PLC下载操作将无法执行。

(4)HMI控制:

此污水处理厂现场设备控制有两个PLC柜,每处都有一台精智面板,通过博途平台与1515RCPU完美协同,集成在一个项目中编程调用变量,对于1515R冗余CPU与HMI连接,需要注意的有:

在新建连接时,在网络视图中点击连接,连接HMI与CPU时会弹出黄色选择框,连接伙伴需要选择S7-1500R/H systerm;需在网络组态中将网段设定与PLC第二网段一致;注意像此类环网设备的介质冗余角色我们统一设定为环网中无设备。

上位机部分操作画面如下图所示:

(六)中央控制室

中央控制室使用分散控制站显示实际的过程界面和控制功能,主要是集中检测和控制流程,同时可以报告运行状态。画面主要包括:

(1)总工艺流程图,提供了整个污水处理厂的视图,以及电机、阀门、仪表显示;

(2)组显示,分别显示各个处理系统,如:生化处理系统、加药系统、污泥脱水系统等。而且能够直接操作其中的设备和显示仪表参数;

(3)趋势显示,可以显示污水处理厂所有的仪表参数,实时更新,通过曲线图来显示时间轴也可移动和放大;

(4)报警&事件显示,包括液位限制警告、添加剂警告、电机故障、温度报警、通讯故障等。

主要工艺的WINCC画面如下图所示:

(七)第三方设备通讯

需要注意的是1515R V2.8版本是不支持PUT/GET指令的。该污水处理厂第三方设备仅要求在中控起到监视的作用即可,对于西门子200smart和S7-300CPU我们直接将其跟WINCC通讯。其中200Smart采用OPC服务器与WINCC建立通讯,315CPU与WINCC通过TCP/IP建立通讯。与第三方数据采集仪的通讯时通过NT50网关将MODBUS转换为PN IO设备,将其GSD文件在博途中安装,与其他S1设备一样组态,再与1515R通讯(MRP环外)。

(八)小结

1515R冗余控制器,适合类似于该污水处理厂的中型项目。1515R采用了透明化的编程方式,使用博途V16编程,将程序下载至冗余系统。通过系统IP与精智面板和上位机WINCC连接简单快捷,无需额外工作。此外该系统采用了PROFINET系统冗余,支持S2冗余功能的设备连接到CPU组成了冗余通讯,即使网络发生中断也能保障设备的正常运行。由于1515R不支持PUT/GET指令,就不太方便与西门子PLC做S7通讯。好在该项目中200smart和S7-300CPU只需与WINCC建立。最终经过调试,该冗余系统运行平稳,为井研第二污水处理厂的可靠运行提供了有力保障。正好借此机会给大家分享一下,有不足之处请多指教。

关注公众号【自动化与工程技术】,获取更多自动化资讯!

相关问答

集成式闭环步进电机如何编程?

以下是步进电机闭环PLC编程的基本流程:1.确定系统的控制目标和规划。这一步需要定义程序需要控制的步进电机的型号、控制器和其他参数。2.确定系统的输入...

请问各位PLC电气工程师,如何把梯形图用欧姆龙CX-ONE仿真出来,步骤过程?

欧姆龙CX-One软件集成了OMRON的PLC和Components的支持软件,提供了一个基于CPS集成开发环境。其PLC编程软件CX-Programmer具备在线仿真功能。方法/步骤...欧.....

plc编程用什么显卡?

独显,因为PLC编程有时候免不了运行画面的。plc编程必须的要求:1、带USB接口(至少两个以上);2、带RS232串口;3、网口;4、双核的,因为现在的编程软件...独...

plc常见的语言编程方法?

PLC的编程方法大体上有5种:经验法、解析法、图解法、技巧法及计算机辅助设计法。(1)经验法:运用已掌握的成功设计经验,结合实际的情况,选择与实际情...

西门子plc用什么编程?

西门子PLC采用STEP7编程软件,是一款集成开发环境(IDE)工具,它支持多种编程语言,如LAD,FBD,STL,SCL和GRAPH,可满足不同的编程需求。使用STEP7编程软件,...

什么是电力电子集成电路plc?

电力电子集成电路(PLC)是一种集成了多个电力电子器件和控制电路的电子器件。它可以实现电能的调节、变换和控制,广泛应用于电力系统中的电能转换和电能控制领...

西门子PLC哪些CPU断电后电池没电程序会丢失?哪些不需要电池程序不丢失?

6、S7-400PLC有两种存储卡,即RAM卡和闪存FEPROM卡,如果使用RAM卡,在断电情况下换备用电池,用户程序肯定丢失;这就是可能你在“重新给换后故障消失,但无程序...

PLC系统集成哪家好?求解答

[回答]底层运行程序又会用到C。广州市腾嘉自动化仪表有限公司一直专注于为广大客户提供国际工业控制系统集成、工控仪表成套及产品,值得信赖。自动控制(a...

西门子PLC触摸屏如何编写程序?

西门子的PLC触摸屏使用西门子WINCC的编程软件对其进行程序编写。西门子plc编程软件支持新款CP243-1(6GK7243-1-1EX01-0XE0)。通过下列改进实现新的互联网向...

西门子plc模块之间怎么连接

您好,连接西门子PLC模块的方法有多种,具体取决于模块类型和应用场景。一般来说,以下是一些常用的连接方法:1.通过总线连接:多个PLC模块可以通过总线连接,...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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