西门子TP1900触摸屏19寸

6AV2124-0UC02-0AX1SIMATIC HMI TP1900 精智, 精智面板, 触摸式操作, 19” 宽屏 TFT 显示屏, 一千六百万色, PROFINET 接口, MPI/PROFIBUS-DP 接口, 24MByte 项目组态存储器, WEC 2013, 可项目组态的版本 WinCC Comfort V14 SP1 带 HSP在固件版本低于V2.1的 S7-1200/S7-1500 中,如果使用了IO 地址(例如,"EW4:P")对块进行参数化并且出现了IO访问错误,FB/FC块将不会被执行。      其结果是,不会运行被调用块中程序化的错误评估(基于替代值0或者一个状态值),所以不能从程序中得到任何有效信息。


避免在传递块参数时直接进行IO访问,因为组态的IO模块可能会出错。

在固件版本低于V2.1的 S7-1200/S7-1500 中,如果使用了IO 地址(例如,"EW4:P")对块进行参数化并且出现了IO访问错误,FB/FC块将不会被执行。

其结果是,不会运行被调用块中程序化的错误评估(基于替代值0或者一个状态值),所以不能从程序中得到任何有效信息。

CPUIO访问错误的优先级高于调用块,所以该块不会被执行。但是,如果您创建了一个需要诊断访问错误的块,我们建议参考补救措施2给出的信息。

如果在 IO 地址后面加上“P”,那么程序将不会访问过程映像区而是直接访问模块。那么当CPU去识别一个未组态的PROFINET 设备,因为错误的 IO 输入,将导致该块不会被执行。

S7-1500注意事项(所有CPU)

在这些CPU的V2.1固件版本中,上面描述的行为已经被修改。当在块的输入参数上发生访问错误时,将会使用替代值0以维持程序继续执行。块会使用替代值来完成执行过程。

对于固件版本V2.1以下的S7-1500 CPU和所有的S7-1200 CPU,我们建议以下两个补救措施:

补救措施1

对于FB块,复制IO 输入到一个静态变量,对于FC和OB块,复制到全局变量中,然后使用静态变量或全局变量对块进行参数化。图1显示了这样一个例子 。当发生IO访问错误时,附加的变量会起到让FC2继续执行的作用。

图 01 

补救措施 2

按照下面的措施来避免参数传递时IO访问错误的触发。在进行输入参数的传递时,使用Variant来代替基本数据类型(字节/字/双字)。在块中调用“VariantGet”指令。“VariantGet”指令读取变量的值,将源目标“SRC”的变量写入目标变量“DST”中。你可以用临时变量临时储存这个值。如果发生一个IO访问错误,该错误在块内部生成,功能块仍然可完整运行通过。你可以直接通过调用块中的替代值0或者CPU的诊断缓冲区评估错误。


图 02

创建环境
该FAQ中的截图由 STEP 7 (TIA Portal)V14创建。

根据所使用的CPU,系统功能模块"WRREC"SFB53/"WR_REC"SFC58和"RDREC"(SFB52)/"RD_REC"(SFC59)激活任务的数量是有限制的。

"RDREC"(SFB52)/"RD_REC"(SFC59)被用作读取中央机架或远程插槽中模块的数据记录。

"WDREC"(SFB53)/"WR_REC"(SFC58)被用作写入中央机架或远程插槽中模块的数据记录。

"RDREC"(SFB52)/"RD_REC"(SFC59)和"WDREC"(SFB53)/"WR_REC"(SFC58)是异步工作的。异步指令的执行会跨越多个调用周期。CPU会平行于循环的用户程序执行异步指令。

根据所使用的CPU,系统功能模块"WRREC"/"WR_REC"和"RDREC"/"RD_REC"激活任务的数量是有限制的。

下表提供了关于您CPU能同时支持系统功能模块"WRREC"/"WR_REC"和"RDREC"/"RD_REC"
  

系统功能/
系统块
SFB 52 "RDREC"/
SFB 53 "WRREC"
SFC 59 "RD_REC"/
SFC 58 "WR_REC"
解释从/向中央机架或远程插槽中的模块(PROFIBUS DP或PROFINET IO)读写数据记录从/向IO读写数据记录
IM154 (ET 200pro)
IM151 (ET 200S)
IM147 (ET 200X)
同时 4 个 SFC 58/59 SFB 52/53 任务
CPU 312, CPU 313, CPU 314
CPU 315, CPU 316
同时 4 个 SFC 58/59 SFB 52/53 任务
CPU 317, CPU 319
CPU 318-2
同时 8 个 SFC 58/59 SFB 52/53 任务
CPU 41x1)每个 PROFIBUS DP 网段或 PROFINET IO 系统中 8 个任务

CPU 121x 同时 4 个 SFB 52/53 任务 不支持
CPU 151x V1.8及以下 同时10个SFB 52任务,10个SFB53 任务 同时10个SFC 58任务,10个SFC59 任务
CPU 151x V2.0及以上 同时20个SFB 52任务,20个SFB53 任务 同时10个SFC 58任务,10个SFC59 任务
西门子TP1900触摸屏19寸

1)外部PROFIBUS DP 网段或 PROFINET IO 系统上每个 SFC/SFB 同时任务数量一定不能超过 32 。 外部PROFIBUS DP 网段或 PROFINET IO 系统通过CP/CM的接口连接。

举例:
CPU 414-2DP 中,每个 SFC/SFB 多可同时执行 48 个任务(CPU 集成的两个接口上,PROFIBUS DP 网段每个可以同时执行 8 个任务, 还有 32 个在外部PROFIBUS DP 网段和 PROFINET IO 系统上). 

规则: 

  • 以下适用于S7-400CPU:

  • 如果在中央或扩展机架上读写数据记录,CPU同步执行任务。这种情况下,任务顺序执行,对于同时激活的任务没有数量限制。

  • 如果在 PROFIBUS 网络里运行多个通信任务,请确保不要超过列表里所指明的可以同时激活的任务的数量。因为一个 SFC/SFB 会执行若干个 CPU 的周期。

  • 列表中对系统功能模块 SFB53/SFC58 和 SFB52/SFC59 激活任务的限制同样可用于调用系统功能块和内部模块。包括 FM_CS, PID_FM 和 FMCS_PID模块。
    例如:
    当使用 FM 355 (4 个通道被参数化)通过调用 FMCS_PID 进行通信时,4 个读任务被占用。

注意:
多个实例同时运行的时间可能比单独运行读/写任务更长。

说明
角度以浮点数形式存储于 ACCU 1 中,结果再存入 ACCU 1 中。角度会以度 (0 to 360 度)为单位,与弧度成正比;180 度对应 π (3.141593...)。

  • 弧度 = 角度 * π / 180

  • 角度 = 弧度 * 180 / π

在下面的例子(图1)中, “Angle” 功能将 45 度转换为弧度,通过  "In_Radian" 参数将 0.7853982 弧度转化回 45度。


图. 1

STEP 7 (TIA Portal) 的库中包含 “Angle” 功能 ,用于角度与弧度的互相转换。 该库也包含两个全局数据块 “Control ”和 “Store” ,用于参数化功能的形参。

 

形参数据类型
角度转化为弧度
输入: "In_Angle"Real
输出: "Out_Radian"Real
弧度转化为角度
输入: "In_Radian"Real
输出: "Out_Angle"Real

说明
除了需要STEP 7 >= V13 SP1 (TIA Portal)的软件,还需要S7-1200 CPU固件版本>= V4 (文章编号: 6ES721x-1xx40-0XB0)。
Modbus RTU可以通过以下模块通讯。

  • CB 1241 RS485 (订货号: 6ES7241-1CH30-1XB0) 结合S7-1200 CPU固件升级到>= V4.1.1.

  • CM 1241 RS422/485 (订货号: 6ES7241-1CH32-0XB0) 结合通讯模块固件升级到>= V2.1

  • CM 1241 RS232 (订货号:6ES7241-1AH32-0XB0) 结合通讯模块固件升级到>= V2.1

除了"Modbus_Master"指令,还需要"Modbus_Comm_Load"指令才能建立通讯。
两个程序块都在STEP 7 (TIA Portal)中,"Instructions>Communication>Communication processor>MODBUS ( RTU )>= Version 3.0 "。
 


图. 01

Modbus_Comm_Load

Modbus_Comm_Load程序块是用来选择通讯模块的,设置通讯参数并用主站(或从站)的参数将连接参数化。

 


图. 02

在次调用Modbus_Master (or Modbus_Slave)之前,非循环块 Modbus_Comm_Load 必须运行并且运行完成(DONE为1)。 Modbus_Comm_Load 可以在程序的个循环中(通过在硬件组态中启用系统存储器位M1.0)调用。在硬件组态中插入通讯模块之后,就可以在PORT参数传输通讯模块的符号名。
通讯参数BAUD (波特率)和PARITY (奇偶校验) 必须要与从站地址相匹配。在参数MB_DB传输Modbus_Master (or Modbus_Slave)背景数据的数据结构MB_DB,这样就可以定义通讯模块(通过PORT参数识别) 为MODBUS主站(或从站)。除此之外,必须改变 Modbus_Comm_Load的实例数据中的静态参数以便进行双工操作模式,通过初始值设定(0 = full duplex (RS232), 1 = full duplex (RS422)四线制模式,4 = half duplex (RS485) 两线制模式)。      

 


图. 03

Modbus_Master
使用Modbus_Master功能块来定义通讯模块,并将Modbus_Comm_Load组态块选择为MODBUS主站。


图. 04

Modbus_Master块用来选择需要与之通讯相匹配的MODBUS从站,指定功能代码并定义本地数据的存储区。下面表格介绍了参数。

 

ParameterDescription
REQ使能通讯。
MB_ADDRMODBUS-RTU站地址。
MODE

请求的类型:
 "0" = 读
"1" = 写

"104" = 读取从站的输入字(寄存器地址到65535)
...

DATA_ADDR定义MODBUS起始地址( =偏移量 + 从站寄存器地址):MODE = 104:Offest =0
DATA_LEN定义MODBUS数据长度(位或者字节形式):MODE = 104: Words
DATA_PTR定义主站本地数据接收区和发送区。DATA_PTR参数必须引用一个数据块,这个数据块的“Optimized block access”属性必须已被禁用。

表 01

"MODBUS (RTU)"指令库也包含"MODBUS"指令库的功能。
但是,如果使用Modbus_Slave块,MB_HOLD_REG参数只支持“Word”数据类型的一维数组。

西门子TP1900触摸屏19寸