详细介绍
西门子CPUST20通讯模块的服务说明:
《销售态度》:质量保证、诚信服务、及时到位!
《销售宗旨》:为客户创造价值是我们永远追求的目标!
《服务说明》:现货配送至全国各地含税(13%)含运费!
《产品质量》:原装产品,*!
《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!
串口引脚定义及协议说明:
串口通讯,又经常被称为点对点通讯或者PtP通讯,是工业设备中的一种非常通用的通讯方式,常用于获取相对远程采集设备的数据。
串行通信,通常利用RS232C或者RS485电气接口,实现ASCII码或者Modbus通讯;其特点是通信线路简单,成本较低,用于解决不同厂商产品之间节点少、数据量小、通讯速率低、实时性要求不高的场合,如过程仪表、变频器、连接扫描仪、条码阅读器等带有串行通讯接口的设备,CP卡加载通讯协议后,还可以和支持Modbus协议的现场仪表通讯。
为了实现设备相互通讯,通讯双方的通讯接口和通讯协议要*,基本的串行通讯的数据帧格式和波特率也要匹配。
西门子串行通讯支持的数据帧格式:
起始位:1位;
数据位:7/8位;
校验位:1位奇/偶校验位,或者没有校验位;
停止位:1/2位。
凡是符合这些格式的串行通信设备,理论上都可以相互通信。
支持的通讯接口
西门子CPUST20通讯模块常用的串行数据接口有:RS232C 和 RS485/422。RS-232C、RS-422/485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。
注意: 接口和协议是两个概念。
RS-232C 是低速率的单端串行通讯,RS-232C 采取不平衡传输方式,即所谓单端通讯。
1.RS232C 通讯接口特点:
RS-232采取不平衡传输方式,其收、发端的数据信号是相对于信号地,抗共模干扰能力差;
近距离通讯,大通信距离15m;
只能用于点对点(即一对收/发设备)通讯。
2. RS232C 接口定义:
RS232C并未定义连接器的物理特性,不同类型的连接器引脚定义也各不相同,其中9针和25针的引脚定义对照,如图 1 所示。
图1 RS232C 串口管脚定义
为简单且常用的是三线制接法,即Txd,Rxd和地线三根,如上图中红色(2,3)和紫色(5)三个针脚。
RS422/485 接口
RS-422/485 改进 RS-232 通信距离短、速率低的缺点。
1.RS422/485接口特点:
RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输;
平衡传输抗干扰能力更强,使传输距离更远,通讯距离长1200米;
可以连接多个设备,RS422总线可支持10个节点(单机发送、多机接收的单向传输),RS485可支持32个节点(多点、双向通讯能力);
网络拓扑一般采用终端匹配的总线型结构,不支持星型或树形;
传输距离超过50米,需要在两端加终端电阻330欧姆(推荐用LIYCY电缆);
2.RS422/485接口定义:
RS422/485 的端口有9针、15针,CP340/341/440/441的接口是15针,如图 2 所示。
图2 RS422/485 串口管脚定义
常用支持协议
常用的协议类型
ASCII 协议,又称自由口
Modbus 协议
ASCII 协议通过通讯处理器和通讯伙伴之间的点对点连接控制数据传输。
由于消息的结构*由用户定义,用户可以以 ASCII 协议为基础开发自己的消息。在接收方只需要定义接收消息的结束方式,发送接收双方协商*。
ASCII 驱动程序允许发送和接收任何结构的数据(所有可打印的 ASCII 码表字符符以及从 00 到 FFH [带有 8 个数据位字符帧] 的所有其它字符或从 00 到 7FH [带有 7 个数据位字符帧]的所有其它字符)。
ASCII协议适用于与支持串行通信的智能仪表、条形码阅读器、扫描仪、打印机等设备进行通讯。
MODBUS 协议
MODBUS RTU 通信协议是以主从的方式进行数据传输的,主动方发送请求,被动方响应请求,应答的方式。
在传输的过程中主站是主动方,即主站发送数据请求报文到从站;从站是被动方,即如果正常从站返回正常响应报文,如果故障从站返回异常响应报文,如图 3 所示。
图3 MODBUS 请求响应报文格式
MODBUS 系统中,数据交换需要通过功能代码(Function Code)来控制的,具体分以下两类。
有些功能码是对位操作的,通信的用户数据是以位为单位的:
FC01读输出位的状态;
FC02读输入位的状态;
FC05写单个输出位;
FC15写多个输出位。
有些功能码是对16位寄存器操作的,通信的用户数据是以字为单位的:
FC03读输出寄存器;
FC04读输入寄存器;
FC06写单个输出寄存器;
FC16写多个输出寄存器。
这些功能码是对四个数据区位输入、位输出、寄存器输入、寄存器输出进行访问的,如图 4 所示。
图4 访问的数据区
Modbus地址由起始的数据类型代号和地址偏移量组成。功能码决定对Modbus地址进行操作类型,其可根据需要传输的数据类型和个数来决定,如图 5 所示。
图5 MODBUS 地址对应关系
注意:在传输消息桢中,用户使用的地址是0为基准,而对应的Modbus地址是1为基准,如FC16功能码时以16进制的0000为起始地址,对应的寄存器是从40001开始。
MODBUS RTU 传输模式:消息桢中的每个8位分成2个4位16进制的字符。
每个字符帧格式(11位),如图 6 所示。
图6 字符帧格式
注意:如果无奇偶校验位,停止位是2位。
消息帧格式,如图 7 所示。
图7 消息帧格式
STARTER诊断故障前提条件:在变频器通电状态下,您可以在线变频器在线的状态下,可以监控变频的故障和报警状态,前提是您的PG/PC上已装有调试工具STARTER 。
诊断故障或报警步骤:
4.您还可以在starter中查看故障历史记录,在左侧树状图中选择Diagnostics下的Alarm history。这时便可以看到当前的故障和历史发生过的故障。
S7-1200 全局DB中的数据类型介绍
S7-1200 全局DB中的数据类型,包括基本数据类型、系统数据类型和硬件数据类型。
在DB块中,新建一个变量,在数据类型列的下拉列表中,选择需要的数据类型。
基本数据类型
基本数据类型:包括位、位字符串、整数、浮点数、定时器、日期&时间、字符、数组和结构;
1.位和位字符串
2.整数数据类型
3.浮点型实数数据类型
如 ANSI/IEEE 754-1985 标准所述,实(或浮点)数以 32 位单精度数 (Real) 或 64 位双精度数 (LReal) 表示。 单精度浮点数的精度高为 6 位有效数字。
而双精度浮点数的精度高为 15 位有效数字。在输入浮点常数时,多可以 6 位 (Real) 或 15 位 (LReal) 有效数字来保持精度。
4.时间和日期数据类型
TIME 数据作为有符号双整数存储,基本单位为毫秒。存储的数值是多少,就代表有多少ms。 编辑时可以选择性使用日期 (d)、小时(h)、分钟 (m)、秒 (s) 和毫秒 (ms) 作为单位。
不需要全部时间单位。 例如,T#5h10s 和 500h 均有效。所有单位值的组合值不能超过以毫秒表示的时间日期类型的上限或下限(-2,147,483,648 ms 到 +2,147,483,647 ms)。
DATE 数据作为无符号整数值存储,被解释为添加到基础日期 1990 年 1 月 1 日的天数,用以获取日期。 编辑器格式必须年、月和日。
TOD (TIME_OF_DAY) 数据作为无符号双整数值存储,被解释为自日期的凌晨算起的毫秒数(凌晨 = 0 ms)。必须小时(24 小时/天)、分钟和秒。 可以选择小数秒格式。
DTL(日期和时间长型)数据类型使用 12 个字节的结构保存日期和时间信息。可以在块的临时存储器或者 DB 中定义 DTL 数据。 必须在 DB 编辑器的"起始值"(Start value) 列为所有组件输入一个值。
DTL结构的元素如下表:
5.字符和字符串数据类型
Char 在存储器中占一个字节,可以存储以 ASCII 格式(包括扩展 ASCII 字符代码)编码的单个字符。 WChar 在存储器中占一个字的空间,可包含任意双字节字符表示形式。
编辑器语法在字符的前面和后面各使用一个单引号字符。可以使用可见字符和控制字符。
CPU 支持使用 String 数据类型存储一串单字节字符。 String 数据类型包含总字符数(字符串中的字符数)和当前字符数。 String 类型提供了多达 256 个字节,用于在字符串中存储大总字符数(1 个字节)、当前字符数(1 个字节)以及多 254 个字节。 String 数据类型中的每个字节都可以是从 16#00 到16#FF 的任意值。
String 数据类型示例:
WString 数据类型支持单字(双字节)值的较长字符串。*个字包含大总字符数;下一个字包含总字符数,接下来的字符串可包含多达 65534 个字。 每个字都可以是从 16#0000 到 16#FFFF 的任意值。
WString 数据类型示例:
6.数组数据类型
可以创建包含多个相同数据类型元素的数组,请为数组命名并选择数据类型"Array [lo .. hi] of type",然后根据如下说明编辑"lo"、"hi"和"type":
● lo - 数组的起始(低)下标
● hi - 数组的结束(高)下标
● type - 数据类型之一,例如 BOOL、SINT、UDINT
示例: 数组声明
ARRAY[1..20] of REAL 一维,20 个元素
ARRAY[-5..5] of INT 一维,11 个元素
ARRAY[1..2, 3..4] of CHAR 二维,4 个元素
示例: 数组地址
ARRAY1[0] ARRAY1 元素 0
ARRAY2[1,2] ARRAY2 元素 [1,2]
ARRAY3[i,j] 如果 i =3 且 j=4,则对 ARRAY3 的元素 [3, 4] 进行寻址
6.结构数据类型
STRUCT 数据类型表示由固定数目的多种数据类型的元素组成的数据结构。 数据类型 STRUCT 或 ARRAY 的元素还可以在结构中嵌套。 嵌套深度限制为 8 级。 结构可用于根据过程控制系统分组数据以及作为一个数据单元来传送参数。
对于 S7-1200 或 S7-1500 系列 CPU,可多创建 65534 个结构。 其中每个结构可多包括 252 个元素。
下图为数据类型 STRUCT 的示例:
结构所在的DB块名为“结构示例",则可以使用 "结构示例".产品规格.长度 访问结构的*个元素长度。
系统数据类型
系统数据类型:系统数据类型 (SDT) 由系统提供并具有预定义的结构。 系统数据类型的结构由固定数目的可具有各种数据类型的元素构成。 不能更改系统数据类型的结构。
系统数据类型只能用于特定指令。 下表给出了可用的系统数据类型及其用途:
统数据类型 | 长度(字节) | 说明 |
---|---|---|
IEC_TIMER | 16 | 定时值为 TIME 数据类型的定时器结构。 例如,此数据类型可用于“TP"、“TOF"、“TON"、“TONR"、“RT"和“PT"指令。 |
IEC_SCOUNTER | 3 | 计数值为 SINT 数据类型的计数器结构。 例如,此数据类型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_USCOUNTER | 3 | 计数值为 USINT 数据类型的计数器结构。 例如,此数据类型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_COUNTER | 6 | 计数值为 INT 数据类型的计数器结构。 例如,此数据类型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_UCOUNTER | 6 | 计数值为 UINT 数据类型的计数器结构。 例如,此数据类型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_DCOUNTER | 12 | 计数值为 DINT 数据类型的计数器结构。 例如,此数据类型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_UDCOUNTER | 12 | 计数值为 UDINT 数据类型的计数器结构。 例如,此数据类型用于“CTU"、“CTD"和“CTUD"指令。 |
ERROR_STRUCT | 28 | 编程错误信息或 I/O 访问错误信息的结构。 例如,此数据类型用于“GET_ERROR"指令。 |
CREF | 8 | 数据类型 ERROR_STRUCT 的组成,在其中保存有关块地址的信息。 |
NREF | 8 | 数据类型 ERROR_STRUCT 的组成,在其中保存有关操作数的信息。 |
硬件数据类型
硬件数据类型:硬件数据类型由 CPU 提供。 可用硬件数据类型的数目取决于 CPU。
根据硬件配置中设置的模块存储特定硬件数据类型的常量。 在用户程序中插入用于控制或激活已组态模块的指令时,可将这些可用常量用作参数。
HW_ANY | WORD | 任何硬件组件(如模块)的标识。 |
HW_DEVICE | HW_ANY | DP 从站/PROFINET IO 设备的标识 |
HW_DPSLAVE | HW_DEVICE | DP 从站的标识 |
HW_IO | HW_ANY | CPU 或接口的标识号 该编号在 CPU 或硬件配置接口的属性中自动分配和存储。 |
HW_IOSYSTEM | HW_ANY | PN/IO 系统或 DP 主站系统的标识 |
HW_SUBMODULE | HW_IO | 重要硬件组件的标识 |
HW_INTERFACE | HW_SUBMODULE | 接口组件的标识 |
HW_IEPORT | HW_SUBMODULE | 端口的标识 (PN/IO) |
HW_HSC | HW_SUBMODULE | 高速计数器的标识 此数据类型用于“CTRL_HSC"和“CTRL_HSC_EXT"指令。 |
HW_PWM | HW_SUBMODULE | 脉冲宽度调制标识 例如,此数据类型用于“CTRL_PWM"指令。 |
HW_PTO | HW_SUBMODULE | 脉冲编码器标识 该数据类型用于运动控制。 |
AOM_IDENT | DWORD | AS 运行系统中对象的标识 |
EVENT_ANY | AOM_IDENT | 用于标识任意事件 |
EVENT_ATT | EVENT_ANY | 用于动态分配给 OB 的事件。 例如,此数据类型用于“ATTACH"和“DETACH"指令。 |
EVENT_HWINT | EVENT_ATT | 用于硬件中断事件 |
OB_ANY | INT | 用于任意组织块。 |
OB_DELAY | OB_ANY | 用于发生延时中断时调用的组织块。 例如,此数据类型用于“SRT_DINT"和“CAN_DINT"指令。 |
OB_TOD | OB_ANY | 时间中断 OB 的数量。 例如,此数据类型用于“SET_TINT"、“CAN_TINT"、“ACT_TINT"和“QRY_TINT"指令。 |
OB_CYCLIC | OB_ANY | 用于发生看门狗中断时调用的组织块。 |
OB_ATT | OB_ANY | 用于动态分配给事件的组织块。 例如,此数据类型用于“ATTACH"和“DETACH"指令。 |
OB_PCYCLE | OB_ANY | 用于分配给“循环程序"事件类别事件的组织块。 |
OB_HWINT | OB_ATT | 用于发生硬件中断时调用的组织块。 |
OB_DIAG | OB_ANY | 用于发生诊断中断时调用的组织块。 |
OB_TIMEERROR | OB_ANY | 用于发生时间错误时调用的组织块。 |
OB_STARTUP | OB_ANY | 用于发生启动事件时调用的组织块。 |
PORT | HW_SUBMODULE | 用于通信端口。 该数据类型用于点对点通信。 |
RTM | UINT | 用于运行小时计数器值。 例如,此数据类型用于“RTM"指令。 |
PIP | UINT | 用于创建和连接“同步循环"OB。此数据类型用于 SFC 26、27、126 和 127。 |
CONN_ANY | WORD | 用于任意连接。 |
CONN_PRG | CONN_ANY | 用于通过 UDP 进行开放式通信的连接。 |
CONN_OUC | CONN_ANY | 用于通过工业以太网 (PROFINET) 进行开放式通信的连接。 |
DB_ANY | UINT | 任意 DB 的标识(数量) 数据类型“DB_ANY"在“Temp"区域中的长度为 0。 |
DB_WWW | DB_ANY | 通过 Web 应用生成的 DB 的数量(例如,“WWW"指令) 数据类型“DB_WWW"在“Temp"区域中的长度为 0。 |