
西门子供应数控软件经销商
PLC是什么意思?相信很多人处于大概知道是什么,又无法准确说出的阶段,作为专注于为企业提供数据采集和设备控制解决方案的众诚工业,今天和大家探讨一下。
而众诚工业还能根据用户需求,设计PLC控制程序,为客户提供PLC编程和上位机软件的定制化开发技术服务,满足用户的多种需求,比如,自主研发的洁净空调智能控制系统和通风排风智能控制系统就配置PLC,不仅具有报警和定时控制功能,还兼具可扩展性和兼容性,系统能被第三方系统集成。
以上PLC的基本介绍,相信大家对PLC也有一个初步的了解。PLC的型号、品牌不同,对应着其结构形式、性能、编程方式等等都有所差异,价格也各不相同,在挑选时候,建议先要明确自己的应用需求,比如具体的应用场景,希望实现的运动和控制功能,已经特殊的控制要求,这些将决定了PLC的选型和搭配组合。
简单地说,PLC就是一种小型的计算机,和我们常用的计算机不同的是,PLC是设备之间通过数字信号进行互动,而我们常用的计算机,是人和计算机的互动。
控制是PLC的核心功能,其控制类型主要分为以下几种1、开关量的开环控制。这是PLC*基本的控制功能,它能凭借其强大的逻辑运算能力,取代传统继电接触器的控制系统;
2、数据采集与监控。这是PLC非常必要的功能,否则它将无法完成现场控制;
3、数字量智能控制。PLC具有实现接收和输出高速脉冲的功能,近年来先进的PLC还开发了数字控制模块和新型运动单元模块,让工程师更加轻松地通过PLC实现数字量控制;
4、PLC能通过模拟量采集和调节温度、压力、速度等参数。
正因为PLC功能强大,且具有设计方便、重量体积小、能耗低、改造工作量小、通用性强、维护方便等易学易用的特点,深受工程师的欢迎,应用非常广泛,钢铁、石油、化工、纺织、交通、机械制造等等行业都能看到它的身影。
RCV_C 处理与 TRCV 指令相同的接收模式。下表说明了在接收区输入数据的方法:
表格 11-23 将数据输入接收区
协议选项 在接收区
输入数据
参数
“connection_typ
e”
LEN 参数的值 RCVD_LEN 参数的值
(字节)
TCP 特殊模式 B#16#11 65535 1 到 1472
TCP 指定长度的数据接
收
B#16#11 0(推荐)或 1 到 8192,
65535 除外
1 到 8192
ISO on TCP 特殊模式 B#16#12 65535 1 到 1472
ISO on TCP 协议控制 B#16#12 0(推荐)或 1 到 8192,
65535 除外
1 到 8192
说明
特殊模式
使用 TCP 或 ISO on TCP 协议时可以存在“特殊模式”。用户通过将“65535”分配给 LEN 参数
来设置特殊模式。接收区与 DATA 构成的区域相同。已接收数据的长度将输出到参数
RCVD_LEN 中。
如果将数据存储在“优化”DB(仅符号访问)中,则只能接收数据类型为 Byte、Char、USInt
和 SInt 的数组中的数据。
说明
将包含“特殊模式”的 S7-300/400 STEP 7 项目导入 S7-1200 中
在 S7-300/400 STEP 7 项目中,通过将“0”分配给 LEN 参数来选择“特殊模式”。在 S7-1200
中,用户通过将“65535”分配给 LEN 参数来设置特殊模式。
如果将包含“特殊模式”的 S7-300/400 STEP 7 项目导入 S7-1200 中,则必须将 LEN 参数
更改为“65535”。
说明
在 DONE 参数值或 ERROR 参数值为 TRUE 前,必须保持发送方区域中的数据一致。
由于 TSEND_C 采用异步处理,在 DONE 参数值或 ERROR 参数值为 TRUE 前,必须保持
发送方区域中的数据一致。
对于 TSEND_C,参数 DONE 状态为 TRUE 表示数据已成功发送。但并不表示连接伙伴 CPU 实
际读取了接收缓冲区。
由于 TRCV_C 采用异步处理,仅当参数 DONE = 1 时TSEND_C 和 TRCV_C 指令的 ERROR 和 STATUS 条件代码
ERROR STATUS 描述
0 0000 作业已无错执行
0 7000 当前无作业处理
0 7001 启动作业处理,正在建立连接,正在等待连接伙伴
0 7002 正在发送或接收数据
0 7003 正终止连接
0 7004 连接已建立并受到监视,无激活的作业处理
1 8085 LEN 参数的值大于允许的*大值。
1 8086 ConNECT 参数超出允许范围。
1 8087 已达到*大连接数;无法建立更多连接。
1 8088 LEN 参数对于在 DATA 中指定的存储区无效。
1 8089 ConNECT 参数未指向数据块。
1 8091 超出*大嵌套深度。
1 809A ConNECT 参数指向的字段与连接描述的长度不匹配。
1 809B 连接描述中的 local_device_id 与 CPU 的不匹配。
1 80A1 通信错误:
• 尚未建立指定的连接
• 当前正在终止指定的连接;无法通过该连接传输
• 正在重新初始化接口
1 80A3 正在尝试终止不存在的连接
1 80A4 远程伙伴连接的 IP 地址无效。例如,远程伙伴的 IP 地址与本地伙伴的 IP 地址
相同。
1 80A5 连接 ID (页 628) 已被使用描述
1 80A7 通信错误:在 TSEND_C 完成前调用了 TDISCON。
1 80B2 ConNECT 参数指向设置为“仅存储在装载存储器中”的数据块。
1 80B3 不一致的参数:
• 连接描述错误
• 本地端口(参数 local_tsap_id)已在另一个连接描述中存在。
• 连接描述中的 ID 与作为参数指定的 ID 不同
1 80B4 使用 ISO on TCP (connection_type = B#16#12) 建立被动连接时,条件代码
80B4 提示您输入的 TSAP 不符合下列某一项地址要求:
• 如果本地 TSAP 长度为 2 个字节且首字节的 TSAP ID 值为 E0 或 E1(十六进
制),则第二字节必须为 00 或 01。
• 如果本地 TSAP 长度为 3 个或更多字节,且首字节的 TSAP ID 值为 E0 或 E1
(十六进制),则第二字节必须为 00 或 01,且所有其它字节必须为有效的
ASCII 字符。
• 如果本地 TSAP 长度为 3 个或更多字节,且首字节的 TSAP ID 值既不为 E0 也
不为 E1(十六进制),则 TSAP ID 的所有字节都必须为有效的 ASCII 字符。
有效 ASCII 字符的字节值为 20 到 7E(十六进制)。
1 80B7 所传送数据的数据类型和/或长度与伙伴 CPU 上用于写入该数据的区域不相符。
1 80C3 所有连接资源均已使用。
1 80C4 临时通信错误:
• 此时无法建立连接
• 接口正在接收新参数
• TDISCON 当前正在删除已组态连接。
1 8722 ConNECT 参数:源区域无效:DB 中不存在该区域。
1 873A ConNECT 参数:无法访问连接描述(例如,DB 不可用)
1 877F ConNECT 参数:内部错误,如无效的 ANY 引用
1 893A 参数包含未装载的 DB 的编号。
以太网连接协议
每个 CPU 都集成了一个支持标准 PROFINET 通信的 PROFINET 端口。TSEND_C、TRCV_C、
TSEND 和 TRCV 指令均支持 TCP 和 ISO on TCP 以太网协议。
更多相关信息,请参见“设备配置:组态本地/伙伴连接路径 (页 609)”TCON、TDISCON、TSEND 和 TRCV 指令
S7-1200 支持两组 TCON、TDISCON、TSEND 和 TRCV 指令:
• TCON、TDISCON、TSEND 和 TRCV 指令 (页 662):这些 TCON、TDISCON、TSEND 和
TRCV 指令具备早期指令的所有功能,还能够使用结构符合 TCON_IP_V4、
TCON_IP_V4_SEC、TCON_IP_RFC, TCON_QDN 和 TCON_QDN_SEC 的连接参数。
• 早期 TCON、TDISCON、TSEND 和 TRCV 指令 (页 678):这些 TCON、TDISCON、TSEND
和 TRCV 指令在 S7-1200 V4.1 之前的版本中已存在,只能与结构符合 TCON_Param 的连
接参数结合使用。
STEP 7 提供不同版本的 TCON、TDISCON、TSEND 和 TRCV 指令。有关指令版本的信息,请
参见 STEP 7 信息系统中的使用指令版本
CON、TDISCON、TSEND 和 TRCV(TCP 通信)指令
使用 TCP 和 ISO on TCP 协议的以太网通信
说明
TSEND_C 和 TRCV_C 指令
为帮助简化 PROFINET/以太网通信的编程,TSEND_C 指令和 TRCV_C 指令兼具 TCON、
TDISCON、TSEND 和 TRCV 指令的功能:
• TSEND_C 兼具 TCON、TDISCON 和 TSEND 指令的功能。
• TRCV_C 兼具 TCON、TDISCON 和 TRCV 指令的功能。
以下指令控制通信过程:
• TCON 在客户机与服务器 (CPU) PC 之间建立 TCP/IP 连接。
• TSEND 和 TRCV 发送和接收数据。
• TDISCON 断开连接。
*少可传送 (TSEND) 或接收 (TRCV) 一个字节的数据,*多 8192 字节。TSEND 不支持传送
布尔位置的数据,TRCV 也不会在布尔位置中接收数据。有关使用这些指令传送数据的信息,
请参阅数据一致性 (页 184)部分。
TCON、TDISCON、TSEND 和 TRCV 异步运行,即,作业处理需要多次执行指令来完成。例如,
执行参数 REQ = 1 的 TCON 指令来启动用于设置和建立连接的作业。执行 TCON
来监视作业进度并使用参数 DONE 来测试作业是否完成。表给出了 BUSY、DONE 和 ERROR 之间的关系。使用该表可以确定当前作业状态:
表格 11-26 BUSY、DONE 和 ERROR 参数之间的交互作用
BUSY DONE ERROR 描述
1 0 0 正在处理作业。
0 1 0 作业已成功完成。
0 0 1 由于出错,导致作业结束。错误原因通过参数 STATUS 输出。
0 0 0 未分配新作业。
TCON 和 TDISCON
说明
初始化通信参数
插入 TCON 指令之后,可使用该指令 (页 609)的“属性”(Properties) 来组态通信参数
(页 630)。在巡视窗口为通信伙伴输入参数时,STEP 7 会在指令的背景数据块中输入相应数
据。
如果要使用多重背景 DB,必须在两个 CPU 上组态该 DB。
表格 11-27 TCON 和 TDISCON 指令
LAD/FBD 描述
"TCON_DB"(
req:=_bool_in_,
ID:=_undef_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_,
connect:=_struct_inout_);
TCP 和 ISO on TCP:TCON 启动从 CPU 到通
信伙伴的通信连接。
"TDISCON_DB"(
req:=_bool_in_,
ID:=_word_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_);
TCP 和 ISO on TCP:TDISCON 终止从 CPU 到
通信伙伴的通信连接描述
REQ IN Bool 在上升沿时,启动相应作业以建立 ID 所指定的连接。
ID IN CONN_OUC
(Word)
引用已分配的连接。
值范围:W#16#0001 到 W#16#0FFF
ConNECT
(TCON)
IN_OUT VARIANT 指向连接说明的指针:
• 对于 TCP 或 UDP,使用结构 TCON_IP_v4 或
TCON_QDN。
相关说明,请参见:“PROFINET 连接参数 (页 630)”。
• 对于使用安全通信的 TCP,使用结构 TCON_IP_V4_SEC
或 TCON_QDN_SEC。
相关说明,请参见:“PROFINET (页 630) 连接参数
(页 630)”。
• 对于 ISO-on-TCP,使用结构 TCON_IP_RFC。
相关说明,请参见:“PROFINET 连接参数 (页 630)”。
• 对于 CP 1543‑1/CP 1545‑1 的 ISO 连接,使用结构
TCON_ISOnative。
相关说明,请参见:TIA Portal 在线帮助:“基于
TCON_ISonative 的连接描述结构”。
• 连接 SMS 客户端时,可使用 TCON_PHONE 系统数据类
型。
相关说明,请参见 TIA Portal 在线帮助:“TCON_Phone
的连接参数”。
• 使用 CM 1542‑5 进行 FDL 连接时,需使用系统数据类
型 TCON_FDL;请参见 TIA Portal 在线帮助:
“TCON_FDL 的连接参数”。
DONE OUT Bool 状态参数,可具有以下值:
• 0:作业尚未启动,或仍在执行过程中。
• 1:作业已执行,且无任何错误。
BUSY OUT Bool 状态参数,可具有以下值:
• 0:作业尚未启动或已完成。
• 1:作业尚未完成。无法启动新作业。
ERROR OUT Bool 状态参数 ERROR:
• 0:无错误
• 1:已出错
STATUS OUT Word 指令的状态
两个通信伙伴都执行 TCON 指令来设置和建立通信连接。用户使用参数指定主动和被动通信
端点伙伴。设置并建立连接后,CPU 会自动保持和监视该连接。
如果连接终止(例如,因断线或远程通信伙伴原因),主动伙伴将尝试重新建立组态的连接。
不必执行 TCON。
执行 TDISCON 指令或 CPU 切换到 STOP 模式后,会终止现有连接并删除所设置的连接。要
设置和重新建立连接,必须执行 TCON。
表格 11-29 ERROR 和 STATUS 指令的 TCON 和 TDISCON 条件代码
ERROR STATUS *
(W#16#...)
说明
0 0000 连接已成功建立。
0 7000 当前无作业处理
0 7001 启动作业执行;建立连接 (TCON) 或终止连接 (TDISCON)。
0 7002 指令正在建立连接(与 REQ 无关);建立连接 (TCON) 或终止连接 (TDISCON)。
1 8085 TCON:正在使用连接 ID。
1 8086 TCON:ID 参数超出了有效范围。
1 8087 TCON:已达到*大连接数;无法建立更多连接
1 8089 TCON:参数 ConNECT 未指向连接描述,或者连接描述是手动创建的。
1 809A TCON:指令不支持参数 ConNECT 中的结构或者长度无效。
1 809B TCON:
• 连接描述中的 InterfaceId 元素与 CPU 或 CP 不匹配,或者值为“0”。
• TCON_xxx 结构中的 InterfaceId 元素未引用 CPU 或 CM/CP 接口的硬件标识符。
1 80A1 TCON:对于 TCP/UDP:连接或端口处于使用状态。
1 80A2 TCON: 系统正在使用本地或远程端口。有关更多信息,请参见“指令的通用参数”
(页 739)、“被动 ISO 和 TCP 通信的受限 TSAP 和端口号”。
1 80A3 TCON:用户程序创建的连接 (TCON) 正在使用 ID 参数的值。连接使用相同的 ID,且
参数 ConNECT 中的连接设置相同。
1 80A4 TCON:该连接远程端点的 IP 地址无效,或者与本地伙伴的 IP 地址重复。
1 80A7 TCON:通信错误:在“TCON”完成前执行了“TDISCON”。
1 80B3 参数分配不一致
1 80B4 TCON:仅适用于 TCON_IP_RFC:出现以下情况之一:
• 指令未分配本地 T 选择器。
• 第一个字节不含值 0x0E。
• 本地 T 选择器以“SIMATIC-”开头。
1 80B5 TCON:指令只允许为连接类型 13 = UDP 建立被动连接(结构 TCON_xxx 的
ActiveEstablished 参数值为 TRUE)。TCON:数据块的 ConnectionType 参数中存在连接描述参数分配错误:
• 仅对 TCON_IP_V4, TCON_IP_V4_SEC, TCON_QDN, TCON_QDN_SEC 有效:0x11、
0x0B 和 0x13
• 仅对 TCON_IP_RFC 有效:0x0C 和 0x12
1 80B7 TCON:对于 TCON_IP_V4, TCON_IP_V4_SEC, TCON_QDN, TCON_QDN_SEC:
• TCP(主动建立连接):远程端口为“0”。
• TCP(被动建立连接):本地端口为“0”。
• UDP:本地端口为“0”。
• 指令将伙伴端点的 IP 地址设为 0.0.0.0。
TCON:对于 TCON_IP_RFC:
• 指令指定的本地 (local_tselector) 或远程 (remote_tselector) T 选择器的长度超过
32 字节。
• 对于 T 选择器(本地或远程)的 TSelLength,指令指定的长度大于 32 字节。
• 特定连接伙伴的 IP 地址长度出错
• 指令将伙伴端点的 IP 地址设为 0.0.0.0。
1 80B8 TCON:本地连接描述(参数 ConNECT 中的结构)的参数 ID 和指令的参数 ID 不同。
1 80C3 TCON:所有连接资源均已使用。
1 80C4 临时通信错误:
• 指令此时无法建立连接 (TCON)。
• 由于连接路径中防火墙的所需端口未打开,指令无法建立连接 (TCON)。
• 接口正在接收新参数(TCON 和 TDISCON)。
• “TDISCON”指令正在删除已组态的连接 (TCON)。
1 80C5 TCON:远程伙伴执行以下操作之一:
• 拒绝建立连接
• 终止连接
• 主动结束连接
1 80C6 TCON:指令无法访问远程伙伴(网络错误)。
1 80C7 TCON:执行超时
1 80C8 TCON:用户程序创建的连接 (TCON) 正在使用 ID 参数的值。连接使用相同的 ID,但
参数 ConNECT 中的连接设置不同。
1 80C9 TCON:远程伙伴验证失败。想要建立连接的远程伙伴与参数 ConNECT 的结构中定
义的伙伴不匹配。
1 80CE TCON:本地接口的 IP 地址为 0.0.0.0。
1 80E0 TCON:指令接收了不适用或错误的消息。
CON:通信握手过程中发生错误。可能的原因:
• 用户中止该过程
• 安全等级不足
• 指令不支持重新协商。
• 指令不支持 SSL/TLS 版本。
• 主机名称验证失败。
1 80E2 证书不受支持/证书无效/无证书
可能的原因:对于相关模块,CPU 未设置时钟或同步模块。
示例:模块默认的日期设置为 1/1/2012,且 CPU 在调试过程中未设置日期。证书的
有效期从 2016 年 8 月 20 日开始,到 2024 年 8 月 20 日结束。在这种情况下,模
块的日期超出证书的有效期;证书对于模块无效。
1 80E3 证书已丢弃。
1 80E4 未找到有效的证书颁发机构。
1 80E5 证书已过期。
1 80E6 传输层安全协议中发生完整性错误
1 80E7 不支持 X.509-V3 证书扩展
1 80E9 指令不支持无服务器证书的 TLS 服务器。
1 80EA 指令不支持 DTLS (UDP) 协议。
1 80EB 客户端无法请求客户端证书。
1 80EC 服务器无法基于 subjectAlternateName 进行验证(仅适用于客户端)。
1 80ED TLSServerCertRef_m-ID 无效
* 在程序编辑器中,错误代码可显示为整数或十六进制值。
TSEND 和 TRCV
说明
使用 PROFINET 开放式用户通信协议时,如果执行 TSEND 指令但不在远程设备上执行相应的
TRCV 指令,则 TSEND 指令可能无限期处于“繁忙状态”,等待 TRCV 指令接收数据。在这
种状态下,TSEND 指令“繁忙”输出将置位,“状态”输出的值为“0x7002”。传输的数据
大于 4096 字节时可能会出现这种情况。在下次执行 TRCV 指令时会解决这一问题。描述
REQ IN Bool TSEND:在上升沿启动发送作业。传送通过 DATA 和 LEN 指
定的区域中的数据。
EN_R IN Bool TRCV:允许 CPU 进行接收;EN_R = 1 时,TRCV 准备接收。
处理接收作业。
ID IN CONN_OUC
(Word)
指向相关连接的引用。ID 必须与本地连接描述信息内的相关
参数 ID 相同。
值范围:W#16#0001 到 W#16#0FFF
LEN IN UDInt 要发送 (TSEND) 或接收 (TRCV) 的*大字节数:
• 默认 = 0:DATA 参数确定要发送 (TSEND) 或接收 (TRCV)
的数据长度。
• 特殊模式 = 65535:设置可变长度的数据接收 (TRCV)。
ADHOC IN Bool TRCV:可选参数(隐藏)
TCP 连接类型的特殊模式请求。描述
DATA IN_OUT Variant 指向发送 (TSEND) 或接收 (TRCV) 数据区的指针;数据区包
含地址和长度。该地址引用 I 存储器、Q 存储器、M 存储器
或 DB。
DONE OUT Bool TSEND:
• 0:作业尚未开始或仍在运行。
• 1:无错执行作业。
NDR OUT Bool TRCV:
• NDR = 0:作业尚未开始或仍在运行。
• NDR = 1:作业已成功完成。
BUSY OUT Bool • BUSY = 1:作业尚未完成。无法触发新作业。
• BUSY = 0:作业已完成。
ERROR OUT Bool ERROR = 1:处理期间出错。STATUS 提供错误类型的详细信
息
STATUS OUT Word 包括错误信息的状态信息。(请参见下表中的错误和状态条
件代码。)
RCVD_LEN OUT UDInt TRCV:实际接收到的数据量(以字节为单位)
说明
TSEND 指令需要通过 REQ 输入参数的上升沿来启动发送作业。BUSY 参数在处理期间
会设置为 1。发送作业完成时,将通过 DONE 或 ERROR