西门子销售工业开关经销商
西门子销售工业开关经销商
PLC是什么意思?相信很多人处于大概知道是什么,但是又无法准确说出的阶段,作为专注于为企业提供数据采集和设备控制解决方案的众诚工业,今天和大家探讨一下。
而众诚工业还能根据用户需求,设计PLC控制程序,为客户提供PLC编程和上位机软件的定制化开发技术服务,满足用户的多种需求,比如,自主研发的洁净空调智能控制系统和通风排风智能控制系统就配置PLC,不仅具有报警和定时控制功能,还兼具可扩展性和兼容性,系统能被第三方系统集成。
以上PLC的基本介绍,相信大家对PLC也有一个初步的了解。PLC的型号、品牌不同,对应着其结构形式、性能、编程方式等等都有所差异,价格也各不相同,在挑选时候,建议先要明确自己的应用需求,比如具体的应用场景,希望实现的运动和控制功能,已经特殊的控制要求,这些将决定了PLC的选型和搭配组合。
简单地说,PLC就是一种小型的计算机,和我们常用的计算机不同的是,PLC是设备之间通过数字信号进行互动,而我们常用的计算机,是人和计算机的互动。
控制是PLC的核心功能,其控制类型主要分为以下几种1、开关量的开环控制。这是PLC*基本的控制功能,它能凭借其强大的逻辑运算能力,取代传统继电接触器的控制系统;
2、数据采集与监控。这是PLC非常必要的功能,否则它将无法完成现场控制;
3、数字量智能控制。PLC具有实现接收和输出高速脉冲的功能,近年来先进的PLC还开发了数字控制模块和新型运动单元模块,让工程师更加轻松地通过PLC实现数字量控制;
4、PLC能通过模拟量采集和调节温度、压力、速度等参数。
正因为PLC功能强大,且具有设计方便、重量体积小、能耗低、改造工作量小、通用性强、维护方便等易学易用的特点,深受工程师的欢迎,因此应用非常广泛,钢铁、石油、化工、纺织、交通、机械制造等等行业都能看到它的身影。
内部使用的通信指令的错误代码 对于 MB_RED_SERVER 指令,除了会发生表中列出的错误外,还会发生由该指令所使用的通 信指令(“TCON”、“TDISCON”、“TSEND”、“TRCV”、“T_DIAG”和“T_RESET”)所引起的错误。 错误代码通过 MB_RED_SERVER 指令的背景数据块来指定。相应指令的错误代码会显示在各 个实例 "Static" 部分中的 STATUS 下。 有关错误代码的含义,请参见相应通信指令文档。 说明 发送或接收数据时发生通信错误 如果发送或接收数据时发生通信错误,则 CPU 将终止现有连接。错误如下: • 80C4 - 临时通信错误;将暂时终止指定的连接。 • 80C5 - 远程伙伴已主动终止了连接。 • 80A1 - 指定连接已断开或尚未建立。 即,可查看连接终止时所有返回的 STATUS 值,以及连接中止时仅输出造成连接终止原因的 STATUS 代码。 示例:如果接收数据时发生临时通信错误,则先输出 STATUS 7003 (ERROR=false),然后再 输出 80C4 (ERROR=true)。 13.5.2.3 Modbus TCP 示例 示例: MB_SERVE 多 TCP 连接 可以拥有多个 Modbus TCP 服务器连接。为此,必须为每个连接单独执行 MB_SERVER。每 个连接必须使用单独的背景数据块、连接 ID 和 IP 端口。S7-1200 仅允许每个 IP 端口进行一 个连接。 为了达到**性能,应在每个程序周期为各个连接执行 MB_SERVER。 CONNECT 参数使用系统数据类型 TCON_IP_V4。这些数据结构的相关示例位于名为“Modbus 连接”的数据块中。“Modbus 连接”数据块包含两个 TCON_IP_V4 结构:“TCPpassive_1”(针 对连接 1)和“TCP_passive_2”(针对连接 2)。程序段注释中描述的连接属性 ID 和 LocalPort 为存储在 CONNECT 数据结构中的数据元素。 TCON_IP_V4 CONNECT 数据同时包含 RemoteAddress ADDR 数组中的 IP 地址。TCPpassive_1 和 TCP_passive_2 内的 IP 地址分配对建立 TCP 服务器连接没有影响,但是会决定哪些 Modbus TCP 客户端可通过与各 MB_SERVER 连接进行通信。MB_SERVER 被动侦听 modbus 客户端消 息,并将进入消息的 IP 地址与存储在相应 RemoteAddress ADDR 数组中的 IP 地址进行比较两个 MB_SERVER 指令可使用以下三种 MB_SERVER IP 地址变量: • IP 地址 = 0.0.0.0 各 MB_SERVER 将响应使用任意 IP 地址的所有 Modbus TCP 客户端。 • IP 地址 = TCPpassive_1 和 TCPpassive_2 中的 IP 地址相同 两个 MB_SERVER 连接仅响应来自该 IP 地址的 Modbus 客户端。 • IP 地址 = TCP_passive_1 和 TCP_passive_2 中的 IP 号不同 各 MB_SERVER 仅响应来自其 TCON_IP_V4 数据中存储的 IP 地址的 Modbus 客户端。 程序段 1:连接 #1,背景 DB =“MB_SERVER_DB”、“Modbus connections.TCPpassive_1”内 (ID = 1 且 LocalPort = 502) 程序段 2:连接 #2,背景 DB =“MB_SERVER_DB_1”、“Modbus connections.TCPpassive_2”内 (ID = 2 且 LocalPort = 503) 示例: MB_CLIENT 1: 通过公共 TCP 连接发送多个请求 多个 Modbus 客户端请求可通过同一连接发送。为此,必须使用相同的背景数据块、连接 ID 和端口号。因为两个 MB_CLIENT 框使用相同的 CONNECT 参数 TCON_IP_v4 数据结构 ("Modbus_connections".TCPactive_1),因此连接 ID、端口号和 IP 地址均相同。CONNECT IP 地址数据分配目标 Modbus TCP 服务器的 IP 地址。 在任意给定时间内,只能有一个 MB_CLIENT 处于激活状态。一个客户端完成执行后,下一 个客户端才能开始执行。由程序逻辑负责执行顺序逻辑。本示例所示为两个客户端从单个 Modbus 客户端读取远程数据并将数据传送至 Modbus 客户端 CPU(从 M1000.0 起始的 M 存储器)。并捕获返回的错误(可选)。 程序段 1:Modbus 功能 1 - 从使用“Modbus 连接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服务器中读取 16 位输出位。ENT 2: 通过不同的 TCP 连接发送多个请求 Modbus TCP 客户端的请求可通过各种不同连接来发送。 为此,必须使用不同的背景 DB 和 连接 ID。 如要与同一 Modbus 服务器建立连接,则 RemotePort(IP 端口)号必须不同。 如果与不同 服务器建立连接,则对 IP 端口号没有限制。 本示例所示为两个 Modbus TCP 户端将来自两个不同 Modbus TCP 服务器的远程数据传送至 同一本地 CPU 存储区(起始地址为 M1000.0),并捕获返回的错误(可选)。 程序段 1: Modbus 功能 4 - 从 Modbus TCP 服务器读取输入过程映像字 CONNECT 参数 =“Modbus 连接”.TCPactive_1: 连接 ID = 1,RemoteAddress = 192.168.2.241,RemotePort = 50MB_CLIENT 4: 协调多个请求 必须确保各个 Modbus TCP 请求都完成执行。 必须由程序逻辑来控制执行顺序。 下面的示 例显示了首个和第二个客户端请求输出如何控制执行顺序。 该示例所示为两个客户端使用同一 CONNECT 连接数据(不同时使用)。 客户端将保持寄存 器数据从同一远程 Modbus TCP 服务器传送至同一本地 CPU 存储区 M 地址。 此外,还捕获 了返回的错误,这是可选的。 程序段 1: Modbus 功能 3 - 读取 Modbus TCP 服务器保持寄存器字 程序段 2: Modbus 功能 3 - 读取 Modbus TCP 服务器保持寄存器字Modbus RTU(远程终端单元)是一个标准的网络通信协议,它使用 RS232 或 RS485 电气连 接在 Modbus 网络设备之间传输串行数据。可在带有一个 RS232 或 RS485 CM 或一个 RS485 CB 的 CPU 上添加 PtP(点对点)网络端口。 Modbus RTU 使用主/从网络,单个主设备启动所有通信,而从设备只能响应主设备的请求。 主设备向从一个从设备地址发送请求,然后该从设备地址对命令做出响应。 Modbus RTU 允许使用 PROFINET 或 PROFIBUS 分布式 I/O 与各类设备(RFID 阅读器、GPS 设 备等)进行通信: • PROFINET (页 607):可以将 S7-1200 CPU 的以太网接口连接至 PROFINET 接口模块。可 通过机架中 PtP 通信模块 接口模块实现与外部 Modbus 设备的串行通信。 • PROFIBUS (页792):在 S7-1200 CPU 机架左边插入 PROFIBUS 通信模块。将 PROFIBUS 通 信模块连接至 PROFIBUS 接口模块的机架。可通过机架中 PtP 通信模块 接口模块实现与 外部 Modbus 设备的串行通信。*多支持的 Modbus 从站数量 Modbus 寻址支持*多 247 个从站(从站编号 1 到 247)。每个 Modbus 网段*多可以有 32 个设备,具体取决于 RS485 接口的负载和驱动能力。当达到 32 个设备的限制时,必须使用 中继器来扩展到下一个网段。需要七个中继器才能将 247 个从站连接到同一个主站的 RS485 接口。 Siemens 中继器仅支持 PROFIBUS;其功能为监视 PROFIBUS 令牌传递。Siemens 中继器不 支持其它协议。因此,需要第三方 Modbus 中继器。 Modbus 超时默认较长;使用多个中继器不会产生延时问题。Modbus 主站不关心从站是否 响应慢或者多个中继器是否延迟了响应。 13.5.3.3 Modbus RTU 指令 Modbus_Comm_Load(组态 Modbus RTU 的 PtP 模块上的 SIPLUS I/O 或端口)指令 表格 13-75 Modbus_Comm_Load 指令 LAD/FBD SCL 说明 "Modbus_Comm_Load_DB"( REQ:=_bool_in, PORT:=_uint_in_, BAUD:=_udint_in_, PARITY:=_uint_in_, FLOW_CTRL:=_uint_in_, RTS_ON_DLY:=_uint_in_, RTS_OFF_DLY:=_uint_in_, RESP_TO:=_uint_in_, DONE=>_bool_out, ERROR=>_bool_out_, STATUS=>_word_out_, MB_DB:=_fbtref_inout_); Modbus_Comm_Load 指令可组态用于 Modbus RTU 协议通信的 SIPLUS I/O 或 PtP 端 口。 Modbus RTU 端口硬件选项:*多安装三个 CM(RS485 或 RS232),及一个 CB (R4845)。 Modbus RTU SIPLUS I/O 选项:安装 ET 200MP S7-1500CM PtP(RS485/422 或 RS232)或 ET 200SP S7-1500 CM PtP (RS485/422 或 RS232) 将 Modbus_Comm_Load 指令放入程序时自 动分配背景数据块注:Modbus RTU、Modbus_Comm_Load 指令使用 RDREC 和 WRREC 指令初始化 PTP 模块。但 RDREC/WRREC 指令异步运行,这 意味着需要几次扫描才能完成指令运行。因此,您必须保持 Modbus_Comm_Load 指令的 EN 参数为真,直到 RDREC/WRREC 指令运行结束。 REQ IN Bool 通过由低到高的(上升沿)信号启动操作。 (仅版本 2.0) PORT IN Port 安装并组态 CM 或 CB 通信设备之后,端口标识符将出现在 PORT 功 能框连接的参数助手下拉列表中。分配的 CM 或 CB 端口值为设备 配置属性“硬件标识符”。端口符号名称在 PLC 变量表的“系统常 量”(System constants) 选项卡中分配。 BAUD IN UDInt 波特率选择: 300、600、1200、2400、4800、9600、19200、38400、 57600、76800、115200,其它所有值均无效 PARITY IN UInt 奇偶校验选择: • 0 – 无 • 1 – 奇校验 • 2 – 偶校验 FLOW_CTRL 1 IN UInt 流控制选择: • 0 –(默认)无流控制 • 1 – RTS 始终为 ON 的硬件流控制(不适用于 RS485 端口) • 2 - 带 RTS 切换的硬件流控制 RTS_ON_DLY 1 IN UInt RTS 接通延时选择: • 0 –(默认)从 RTS 激活一直到传送消息的第一个字符之前无延 时 • 1 到 65535 – 从 RTS 激活一直到传送消息的第一个字符之前以 毫秒表示的延时(不适用于 RS485 端口)。不管 FLOW_CTRL 选择为何,都将应用 RTS 延时。 RTS_OFF_DLY 1 IN UInt RTS 关断延时选择: • 0 –(默认)从传送*后一个字符一直到 RTS 转入非活动状态之 前无延时 • 1 到 65535 – 从传送*后一个字符一直到 RTS 转入非活动状态 之前以毫秒表示的延时(不适用于 RS485 端口)。不管 FLOW_CTRL 选择为何,都将应用 RTS 延时响应超时: Modbus_Master 允许用于从站响应的时间(以毫秒为单位)。如 果从站在此时间段内未响应,Modbus_Master 将重试请求,或者 在发送指定次数的重试请求后终止请求并提示错误。 5 ms 到 65535 ms(默认值 = 1000 ms)。 MB_DB IN Variant 对 Modbus_Master 或 Modbus_Slave 指令所使用的背景数据块的 引用。在用户的程序中放置 Modbus_Master 或 Modbus_Slave 后,该 DB 标识符将出现在 MB_DB 功能框连接的参数助手下拉列 表中。 DONE OUT Bool 上一请求已完成且没有出错后,DONE 位将保持为 TRUE 一个扫描 周期时间。(仅版本 2.0) ERROR OUT Bool 上一请求因错误而终止后,ERROR 位将保持为 TRUE 一个扫描周期 时间。STATUS 参数中的错误代码值仅在 ERROR = TRUE 的一个扫 描周期内有效。 STATUS OUT Word 执行条件代码 1 Modbus_Comm_Load(V 2.x 或更高版本)的可选参数。单击 LAD/FBD 框底部的箭头,展开框并包含这些参数。 可执行 Modbus_Comm_Load 来组态端口以使用 Modbus RTU 协议。为使用 Modbus RTU 协 议组态端口后,该端口只能由 Modbus_Master 或 Modbus_Slave 指令使用。 对用于 Modbus 通信的每个通信端口,都必须执行一次 Modbus_Comm_Load 来组态。为要 使用的每个端口分配一个唯一的 Modbus_Comm_Load 背景数据块。*多可在 CPU 中安装 三个通信模块(RS232 或 RS485)和一个通信板 (RS485)。从启动 OB 调用 Modbus_Comm_Load 并执行它一次,或使用第一个扫描系统标记 (页 90)发起调用以执行 它一次。只有在必须更改波特率或奇偶校验等通信参数时,才再次执行 Modbus_Comm_Load。 如果将 Modbus 库与分布式机架中的模块结合使用,则必须在一个循环中断例程中执行 Modbus_Comm_Load 指令(例如,每秒或每隔 10 秒执行一次)。如果分布式机架的电源 中断或者卸下了模块,则在模块恢复运行时,仅向 PtP 模块发送 HWConfig 参数组。由 Modbus_Master 启动的所有请求都会超时,并且 Modbus_Slave 转入静默状态(对任何消息 均无响应)。循环执行 Modbus_Comm_Load 解决了这些问题。 将 Modbus_Master 或 Modbus_Slave 指令放入用户程序中时,将为其分配背景数据块。指定 Modbus_Comm_Load 指令的 MB_DB 参数时将引用该背景数据块