西门子销售低压电器经销商
PLC是什么意思?相信很多人处于大概知道是什么,但是又无法准确说出的阶段,作为专注于为企业提供数据采集和设备控制解决方案的众诚工业,今天和大家探讨一下。
而众诚工业还能根据用户需求,设计PLC控制程序,为客户提供PLC编程和上位机软件的定制化开发技术服务,满足用户的多种需求,比如,自主研发的洁净空调智能控制系统和通风排风智能控制系统就配置PLC,不仅具有报警和定时控制功能,还兼具可扩展性和兼容性,系统能被第三方系统集成。
以上PLC的基本介绍,相信大家对PLC也有一个初步的了解。PLC的型号、品牌不同,对应着其结构形式、性能、编程方式等等都有所差异,价格也各不相同,在挑选时候,建议先要明确自己的应用需求,比如具体的应用场景,希望实现的运动和控制功能,已经特殊的控制要求,这些将决定了PLC的选型和搭配组合。
简单地说,PLC就是一种小型的计算机,和我们常用的计算机不同的是,PLC是设备之间通过数字信号进行互动,而我们常用的计算机,是人和计算机的互动。
控制是PLC的核心功能,其控制类型主要分为以下几种1、开关量的开环控制。这是PLC*基本的控制功能,它能凭借其强大的逻辑运算能力,取代传统继电接触器的控制系统;
2、数据采集与监控。这是PLC非常必要的功能,否则它将无法完成现场控制;
3、数字量智能控制。PLC具有实现接收和输出高速脉冲的功能,近年来先进的PLC还开发了数字控制模块和新型运动单元模块,让工程师更加轻松地通过PLC实现数字量控制;
4、PLC能通过模拟量采集和调节温度、压力、速度等参数。
正因为PLC功能强大,且具有设计方便、重量体积小、能耗低、改造工作量小、通用性强、维护方便等易学易用的特点,深受工程师的欢迎,因此应用非常广泛,钢铁、石油、化工、纺织、交通、机械制造等等行业都能看到它的身影。
:SIMATIC 中存在冗余错误 RED_ERR_S7 3 OUT Bool • 0:链接伙伴侧无冗余错误 • 1:链接伙伴侧存在冗余错误 RED_ERR_S7 3 OUT Bool • 0:至少已建立 1 个组态连接 • 1:完全丢失通信,所有组态连接均终止 1 有关详细信息,参见下文中“授权”部分。 2 有关详细信息,参见下文中“输入参数:MB_MODE、MB_DATA_ADDR、MB_DATA_LEN 和 MB_DATA_PTR”部分。 3 有关详细信息,参见下文中“输出参数:STATUS_x、RED_ERR_S7、RED_ERR_DEV 和 TOT_COM_ERR”部分。 说明 MB_RED_CLIENT 调用过程中输入数据保持一致 调用 Modbus 客户端指令时,输入参数的值将存储在内部。在处理帧时,这些值不能更改。 多个客户端连接 CPU 可处理多个 Modbus TCP 客户端连接。连接的*大数目取决于所使用的 CPU,具体请参 见相关 CPU 的技术规范。一个 CPU 的总连接数,包括 Modbus TCP 客户端和服务器的连接 数,不能超过所支持的*大连接数。 使用各客户端连接时,请记住以下规则: • 每个 MB_RED_CLIENT 连接都必须使用唯一的背景数据块。 • 对于每个 MB_RED_CLIENT 连接,必须指定唯一的服务器 IP 地址。 • 每个 MB_RED_CLIENT 连接都需要一个唯一的连接 ID。连接 ID 在整个 CPU 范围内必须唯通信节点可设计为独立式或者冗余式。如果其中一个伙伴采用独立式设计,则将其称为单侧 冗余。如果两个伙伴均为冗余式设计,则将其称为双侧冗余: • 单侧冗余: – 说明:必须为通信伙伴之间的每个连接组态一个连接。SIMATIC S7 的连接点称为 0 和 1;通信伙伴的连接点称为 A 和 B。R-CPU 或 H-CPU 1 是指连接点 0,R-CPU 或 HCPU 2 为连接点 1。 – 组态:如果 S7 采用冗余设计,则为 S7 连接点 0 到链接伙伴的节点 A 创建一个连接 (从 S7 连接点 0 到伙伴/节点 A 的连接 => 连接 0A),一个从 S7 连接点 1 到链接伙伴 的节点 A 的连接(从 S7 连接点 1 到伙伴/节点 A 的连接 => 连接 1A)。下图给出了连 接名称帧处理:可通过一个或所有组态连接发送帧: – 通过一个连接发送帧:如果设置 USE_ALL_CONN = FALSE,将通过一个当前有效的连 接发送 MODBUS 帧。发生超时(服务器无响应)或者连接故障时,会尝试通过其它 (*多 4 个)组态连接发送帧。顺序为 0A、1A、0B 和 1B。如果已通过一个连接成功 发送帧,则将此连接标记为“有效”,其它帧通信也通过此连接进行。有效连接发生 连接故障时,会再次尝试通过所有组态连接发送帧。如果所有发送尝试均失败,ERROR 和 STATUS_x 会相应地置位。 如果接收到响应帧,会执行真实性检查。如果检查成功,则执行所需操作,成功执行 作业后,输出 DONE 置位。如果在检查期间检测到错误,则作业正常结束,位 ERROR 置位,并在 STATUS_x 中显示错误编号。在这种情况下,不会再尝试通过下一个组态 连接发送帧。只有在检测到连接故障或者未接收到响应时,才会切换到其它组态连 接。 – 通过所有连接发送帧:如果设置 USE_ALL_CONN = TRUE,则将通过所有组态的既有 连接发送 MODBUS 帧。当其中一个连接上接收到响应帧后,将执行有效性检查。如 果检查成功,则执行所需操作。如果至少有一个连接上接收到有效响应帧,则输出 DONE 置位。 • 冗余输出 RED_ERR_S7、RED_ERR_DEV 和 TOT_COM_ERR所用 PN 接口的硬件标识符 Connectio n ID 16#0000 所用连接的连接 ID 这些连接 ID 在整个 CPU 范围内必须唯一。 Local port 0 客户端的本地端口号。默认情况下不为客户端输入端口号。 Remote IP 0.0.0.0 服务器的远程 IP 地址 Remote port 502 服务器的远程端口号 Modbus/TCP 服务器的默认端口为 502。 组态的连接 Interface ID 64 所用 PN 接口的硬件标识符 Connectio n ID 16#0000 所用连接的连接 ID 在网络视图中对这些连接进行组态。 图 13-8 内部参数(可选) 变量 数据类型 起始值 描述 Blocked Proc Time REAL 3.0 如果存在被阻止的 Modbus 实例,则为复位静态变量 ACTIVE 前的等待时间(单位为秒)。例如,如果输出 了一个客户端请求,而且在该请求完全执行之前中止 执行客户端功能,则可能发生这种情况。等待时间必 须介于 0.5 s 到 55 s 之间。 Receive timeout REAL 2.0 “MB_RED_CLIENT”指令等待服务器响应的时间间隔 (单位为秒)。必须介于 0.5 s 到 55 s 之间Modbus 设备检测: Modbus TCP 服务器使用其 IP 地址寻址。因此,寻址 Modbus TCP 时不会使用 MB_UNIT_ID 参数。 MB_UNIT_ID 参数对应于 Modbus RTU 协议的从站地址 域。如果 Modbus/TCP 服务器用作 Modbus RTU 协议 的网关,则可以使用 MB_UNIT_ID 标识串行网络中的 从站设备。这种情况下,MB_UNIT_ID 参数会将请求转 发给正确的 Modbus RTU 从站地址。 请注意,某些 Modbus/TCP 设备可能需要 MB_UNIT_ID 参数,以在有限的值范围内进行初始化。 Retries WORD 3 指令 MB_RED_CLIENT 返回错误 W#16#80C8 之前尝试 发送的次数。 说明 变量 MB_Transaction_ID 如果 Modbus TCP 服务器应答中的事务 ID 与 MB_RED_CLIENT 作业中的事务 ID 不一致,则 指令 MB_RED_CLIENT 将等待一段时间 (RCV_TIMEOUT * RETRIES),等待事务 ID 正确的 Modbus TCP 服务器进行应答;超出该时间后,指令将返回错误 W#16#80C8。 授权 必须在每个 CPU 上分别对 MB_RED_CLIENT 指令进行授权,且该指令需要付费。授权分为两 个步骤: • 显示许可证 IDENT_CODE • 输入 REG_KEY 注册密钥:必须在每个 MB_RED_CLIENT 指令中分配 REG_KEY 注册密钥。 将 REG_KEY 保存在共享数据块中,所有 MB_RED_CLIENT 指令均可通过该数据块接收所 需的注册密钥。 显示许可证 IDENT_CODE 的程序: 1. 根据循环 OB 中的要求,为 MB_RED_CLIENT 指令分配参数。将程序下载到 CPU,并将 CPU 设 置为 RUN。 2. 打开 Modbus 指令的背景数据块,然后单击“监视全部”(Monitor all) 按钮输入注册密钥 REG_KEY 的程序: 1. 通过“添加新块...”(Add new block…) 插入具有唯一符号名的全新共享数据块,例如 “License_DB”。 2. 在该块中创建数据类型为 STRING[17] 的 REG_KEY 参数。 图 13-10 REG KEY 3. 使用复制/粘帖将已发送的 17 位注册密钥复制到“起始值”(Start value) 列。 4. 在循环 OB 中,在 MB_RED_CLIENT 指令的参数 REG_KEY 中,输入许可证数据块的名称和字 符串名称(例如 License_DB.REG_KEY)。 5. 将修改后的块下载到 CPU。可以在运行时间输入注册密钥;不需要从 STOP 更改 RUN。 6. 现在,该 CPU 已获得使用 MB_RED_CLIENT 指令进行 Modbus/TCP 通信的授权,LICENSED 输 出位为 TRUE。如果注册密钥缺失或不正确,CPU 仍将处理 Modbus/TCP 通信,但始终会在 STATUS_x 输 出中显示“W#16#0A90”(无适用于功能性包装的有效许可证密钥)。输出位 LICENSED 为 FALSE。 输入参数:MB_MODE、MB_DATA_ADDR、MB_DATA_LEN 和 MB_DATA_PTR MB_MODE、MB_DATA_ADDR 和 MB_DATA_LEN 参数的组合定义了当前 Modbus 消息中所 使用的功能代码。 • MB_MODE 中包含有关是否进行读写操作的信息: 读取:MB_MODE = 0、101、102、103 和 104 写入:MB_MODE = 1、2、105、106、115 和 116(注意:MB_MODE = 2 时,Modbus 功能 15 和 05 或 Modbus 功能 16 和 06 无区别。) • MB_DATA_ADDR 中包含有关待读取/写入的目标信息,以及 MB_RED_CLIENT 指令用于计 算远程地址的地址信息。 • MB_DATA_LEN 包含待读取/写入的值的数量。功能代码是 15 时,将从远程地址 0 开始写入 2 个输出位。 MB_MODE = 104 MB_DATA_ADDR = 17834 MB_DATA_LEN = 125 功能代码是 4 时,将从远程地址 17.834 开始读取 125 个输入字。 MB_DATA_PTR: MB_DATA_PTR 参数是一个指针,指向待从 Modbus 服务器接收数据的数据缓冲区或指向待 发送到 Modbus 服务器的数据所在数据缓冲区的指针。可以使用全局数据块或存储区域 (M) 作为数据缓冲区。 对于存储区域 (M) 中的缓冲区,可通过以下方式使用 ANY 格式的指针:“P#位地址” “数据类 型” “长度”(例如:P#M1000.0 WORD 500)。 MB_DATA_PTR 可引用不同的数据结构,具体取决于数据缓冲区所在的存储区域: • 使用具有优化访问权限的全局数据块时,MB_DATA_PTR 可引用基本数据类型的变量或数 组。支持以下数据类型: 数据类型 长度(位) Bool 1 Byte、SInt、USInt、Char 8 Word、Int、WChar、UInt 16 DWord、DInt、UDInt、Real 32 可使用所有 Modbus 功能支持的所有数据类型。例如,MB_RED_CLIENT 可将接收到的字 节类型变量中的某个位写入一个特定地址内,而不改变该字节中的其它位。因此,在执 行位操作功能时,无需使用位数组。 • 如果使用位存储器地址区或具有标准访问的全局数据块作为存储区,则 MB_DATA_PTR 对 基本数据类型的使用无任何限制;此时,MB_DATA_PTR 还可引用诸如 PLC 数据类型 (UDT) 和系统数据类型 (SDT) 等复杂数据类型。说明 将位存储器地址区域用作数据缓冲区 如果将位存储器地址区域用作 MB_DATA_PTR 数据缓冲区,则需注意该变量的值。对于 S7-1200 CPU,为 8 KB。 输出参数:STATUS_x、RED_ERR_S7、RED_ERR_DEV 和 TOT_COM_ERR CPU 将错误消息显示在 MB_RED_CLIENT 指令的状态输出中: 说明 在程序编辑器中,错误状态代码可显示为整数或十六进制值: 1. 在程序编辑器中打开所需的块。 2. 单击“启用/禁用监视”(Monitor on/off) 切换程序状态的显示格式。(如果尚未建立在线连接, 则打开“转至在线”(Go online) 对话框。在此对话框中,可以建立在线连接。) 3. 选择待监视的变量,然后在快捷菜单的“显示格式”(Display format) 中,选择所需的显示格式连接已建立。 0003 连接已终止。 0A90 MB_RED_CLIENT 指令未授权。有关详细信息,参见上文中“授权”部分。 0AFF 连接未组态且未使用。必须组态“0A”连接。 7000 未激活任何作业且未建立任何连接(REQ=0,DISCONNECT=1)。 7001 已触发连接建立操作。 7002 中间调用。正在建立连接。 7003 正在终止连接。 7004 连接已建立且处于受监视状态。未激活任何作业处理。 7005 正在发送数据。 7006 正在接收数据。 • STATUS_x 参数(协议错误) STATUS (W#16#) 描述 80C8 在指定时间段内,服务器无响应。请检查与 Modbus 服务器的连接。只有在 尝试了组态的可重复尝试次数之后,才会报告该错误。 如果“MB_RED_CLIENT”指令在指定时间内没有收到*初传输事务 ID(请参见 静态变量 MB_TRANSACTION_ID)的应答,则输出该错误代码。 8380 接收到的 Modbus 帧格式错误或字节数过少。 8382 • 帧头中的 Modbus 帧长度与接收到的字节数不一致。 • 字节数与实际传送的字节数不一致(仅功能 1 到 4)。 • 收到的帧的起始地址与已经保存的起始地址不一致(功能 5、6、15 和 16)。 • 字数与实际传送的字数不一致(功能 15 和 16)。 8383 读/写数据错误或访问了 MB_DATA_PTR 地址外的区域。有关详细信息,请参 见上文“MB_DATA_PTR”部分。 8384 • 接收到无效的异常代码。 • 接收到的数据值与*初由客户端发送的不同(功能 5、6 和 8)。 • 接收到无效状态值(功能 11)接收到的子功能代码与*初由客户端发送的不同(功能 8)。 8386 接收到的功能代码与*初发送的代码不一致。 8387 服务器接收到的 Modbus TCP 帧协议 ID 不为“0”。 8388 Modbus 服务器发送的数据长度与所处理的不同。只有使用 Modbus 功能 5、 6、15 或 16 时,才会发生该错误。 • STATUS_x 参数(参数错误) STATUS (W#16#) 描述 80B6 无效连接类型;仅支持 TCP 连接。 80BB 参数 ActiveEstablished 的值无效。只允许对客户端建立主动连接 (ActiveEstablished = TRUE)。 8188 参数 MB_MODE 的值无效。 8189 参数 MB_DATA_ADDR 中的数据地址无效。 818A 参数 MB_DATA_LEN 中的数据长度无效。 818B 参数 MB_DATA_PTR 的指针无效。请检查 MB_DATA_ADDR 和 MB_DATA_LEN 参数的值。有关“MB_DATA_ADDR”的更多信息,请参见上文 “MB_DATA_ADDR”部分。 818C 参数 BLOCKED_PROC_TIMEOUT 或 RCV_TIMEOUT 超时(参见指令的静态变 量)。BLOCKED_PROC_TIMEOUT 和 RCV_TIMEOUT 必须介于 0.5 s 和 55.0 s 之间。 8200 • CPU 当前正在通过该端口处理另一个 Modbus 请求。 • MB_RED_CLIENT 具有相同连接参数的另一实例正在处理现有 Modbus 请 求。 说明 内部使用的通信指令的错误代码 对于 MB_RED_CLIENT 指令,除了会发生表中列出的错误外,还会发生由该指令所使用的通 信指令(TCON、TDISCON、TSEND、TRCV、T_DIAG 和 TRESET)所引起的错误。 CPU 通过 MB_RED_CLIENT 指令的背景数据块来指定错误代码。CPU 将相应指令的错误代码 显示在 "Static" 部分中的 STATUS 下。 有关错误代码的含义,请参见相应通信指令文档