湖州西门子1200plcdp通讯模块
欢迎来电质询高品质西门子自动化产品;
联系人 : 瞿章明(销售工程师)
联系电话: :132 1743 0013 (24小时服务)
商务QQ :275 0130 146
微信 :132 1743 0013
地址( Add ) :上海市松江区海立华亭5幢

功能 (FC) 是通常用于对一组输入值执行特定运算的代码块。 FC 将此运算结果存储在存储器位置。 例如,可使用 FC 执行运算和可重复使用的运算(例如数学计算)或者执行工艺功能(如使用位逻辑运算执行的控制)。 FC 也可以在程序中的不同位置多次调用。 此重复使用简化了对经常重生的任务的编程。
FC 不具有相关的背景数据块 (DB)。 对于用于计算该运算的临时数据,FC 采用了局部数据堆栈。 不保存临时数据。 要长期存储数据,可将输出值赋给全局存储器位置,如 M 存储器或全局 DB。
功能块 (FB)
功能块 (FB) 是使用背景数据块保存其参数和静态数据的代码块。 FB 具有位于数据块
(DB) 或“背景”DB 中的变量存储器。 背景 DB 提供与 FB 的实例(或调用)关联的一块存储区并在 FB 完成后存储数据。 可将不同的背景 DB 与 FB 的不同调用进行关联。 通过背景 DB 可使用一个通用 FB 控制多个设备。 通过使一个代码块对 FB 和背景 DB 进行调用,来构建程序。 然后,CPU 执行该 FB 中的程序代码,并将块参数和静态局部数据存储在背景 DB 中。 FB 执行完成后,CPU 会返回到调用该 FB 的代码块中。 背景 DB 保留该 FB 实例的值。 随后在同一扫描周期或其它扫描周期中调用该功能块时可使用这些值。
可重复使用的代码块和关联的存储区
用户通常使用 FB 控制在一个扫描周期内未完成其运行的任务或设备的运行。 要存储运行参数以便从一个扫描快速访问到下一个扫描,用户程序中的每一个 FB 都具有一个或多个背景 DB。 调用 FB 时,也需要包含块参数以及用于该调用或 FB “实例”的静态局部数据的背景 DB。 FB 完成执行后,背景 DB 将保留这些值。
通过设计用于通用控制任务的 FB,可对多个设备重复使用 FB,是:为 FB 的不同调用选择不同的背景 DB。
FB 将 Input、Output 和 InOut 以及静态参数存储在背景数据块中。
在背景数据块中分配起始值
背景数据块存储每个参数的默认值和起始值。 起始值提供在执行 FB 时使用的值。 然后可在用户程序执行期间修改起始值。
FB 接口还提供一个“默认值”(Default value) 列,使您能够在编写程序代码时为参数分配新的起始值。 然后将 FB 中的这个默认值传给关联背景数据块中的起始值。 如果不在 FB 接为参数分配新的起始值,则将背景数据块中的默认值到起始值。
使用带多个 DB 的单个 FB
下图显示了三次调用同一个 FB 的 OB,是针对每次调用使用一个不同的数据块。 该结构使一个通用 FB 可以控制多个相似的设备(如电机),是在每次调用时为各设备分配不同的背景数据块。 每个背景 DB 存储单个设备的数据(如速度、加速时间和总运行时间)。
在此实例中,FB 22 控制三个的设备,其中 DB 201 用于存储个设备的运行数
据,DB 202 用于存储第二个设备的运行数据,DB 203 用于存储第三个设备的运行数据。
数据块 (DB)
在用户程序中创建数据块 (DB) 以存储代码块的数据。 用户程序中的所有程序块都可访问全局 DB 中的数据,而背景 DB 仅存储特定功能块 (FB) 的数据。
了解数据一致性
相关代码块执行完成后,DB 中存储的数据不会被。 有两种类型的 DB:
全局 DB 存储程序中代码块的数据。 任何 OB、FB 或 FC 都可访问全局 DB 中的数据。
背景 DB 存储特定 FB 的数据。 背景 DB 中数据的结构反映了 FB 的参数(Input、
Output 和 InOut)和静态数据。 (FB 的临时存储器不存储在背景 DB 中。)
说明
尽管背景 DB 反映特定 FB 的数据,然而任何代码块都可访问背景 DB 中的数据。
可将 DB 组态为只读:
在项目浏览器中右键单击相应 DB,然后在右键快捷菜单中选择“属性”(Properties)。
在“属性”(Properties) 对话框中选择“特性”(Attributes)。
选择“在设备中写保护数据块”(Data block write-protected in the device) 选项并单击“确定”(OK)。
创建可重复使用的代码块

块”(Program blocks) 下的“添加新块”(Add new block) 对话框创建
OB、FB、FC 和全局 DB。
创建代码块时,需要为块选择编程语言。 无需为 DB 选择语言,因为它仅用于存储数据。
了解数据一致性
CPU 为所有基本数据类型(例如 Word 或 DWord)和所有定义的结构(例如IEC_TIMERS 或 DTL)保持数据一致性。 值的读/写操作无法中断。 (例如,在读写四
字节的 DWord 之前,CPU 会防止对该 DWord 值进行访问。) 为确保程序循环 OB 和中断 OB 无法同时写入同一个存储单元,在程序循环 OB 中的读/写操作完成之前,CPU 不会执行中断 OB。
如果用户程序共享存储器中在程序循环 OB 和中断 OB 之间生成的多个值,用户程序还必须确保在修改或读取这些值时保持一致性。 可以在程序循环 OB 中使用 DIS_AIRT(禁用中断)和 EN_AIRT(启用中断)指令,以防止对共享值进行访问。
在代码块中 DIS_AIRT 指令,以确保在读/写操作期间无法执行中断 OB。
读/写能够被中断 OB 更改的值的指令。
在顺序结尾 EN_AIRT 指令,以取消 DIS_AIRT,并允许执行中断 OB。
HMI 设备或另一个 CPU 发出的通信请求也能够中断程序循环 OB 的执行。通信请求也会与数据一致性相关的问题。 CPU 确保基本数据类型始终由用户程序指令执行一致地读取和写入。 由于通信会周期性地中断用户程序,因而不能保证 HMI 能够同时更新 CPU 中的多个值。 例如,给定 HMI 画面上显示的值可能来自 CPU 的不同扫描周期。
PtP(Point-to-Point,点到点)指令、PROF 指令(例如,TSEND_C 和 TRCV_C) 和 PROFS 分布式 I/O 指令和 PROFI 分布式 I/O 指令 (页 290)可用于传送被中断的数据缓冲区。 通过避免对程序循环 OB 和中断 OB 中的缓冲区进行任何读/写操作, 可以确保数据缓冲区的数据一致性。如果需要在中断 OB 中修改这些指令的缓冲区值,请使用 DIS_AIRT 指令所有中断(中断 OB 或源自 HMI 或另一个 CPU 的通信中断), 直到执行了 EN_AIRT 指令。
说明
使用 DIS_AIRT 指令中断 OB 的处理,直到执行了 EN_AIRT 指令,以此影响用户程序的中断等待时间(从事件发生到执行中断 OB 的时间)。
编程语言
STEP 7 为 S7-1200 提供以下编程语言:
LAD(梯形图逻辑)是一种图形编程语言。 它使用基于电路 图 (页 156)的表示法。
FBD(功能块图)是基于布尔 代数 (页 157)中使用的图形逻辑符号的编程语言。
SCL(结构化控制语言)是一种 基于文本的编程语言 (页 157)。创建代码块时,应选择该块要使用的编程语言。
用户程序可以使用由任意或所有编程语言创建的代码块。
梯形图 (LAD)
电路图的元件(如常闭触点、常开触点和线圈)相互连接构成程序段。

要创建复杂运算逻辑,可分支以创建并行电路的逻辑。 并行分支向下打开或直接连接到电源线。 用户可向上终止分支。
LAD 向多种功能(如数学、定时器、计数器和)提供“功能框”指令。
STEP 7 不 LAD 程序段中的指令(行和列)数。
说明
每个 LAD 程序段都必须使用线圈或功能框指令来终止。
创建 LAD 程序段时请注意以下规则:
不能创建可能反向能流的分支。
$ % & ' =
( )
+ *
不能创建可能短路的分支。
$ % & =
功能块图 (FBD)
与 LAD 一样,FBD 也是一种图形编程语言。 逻辑表示法以布尔代数中使用的图形逻辑符号为基础。

算术功能和其它复杂功能可直接结合逻辑框表示。
STEP 7 不 FBD 程序段中的指令(行和列)数。
SCL
结构化控制语言 (SCL, Structured Control Language) 是用于 SIMATIC S7 CPU 的基于PASCAL 的编程语言。 SCL 支持 STEP 7 的块结构 (页 149)。 还可以在用 SCL 编写的程序块中包括用 LAD 和 FBD 编写的程序块。
SCL 指令使用编程运算符,例如,用 (:=) 表示赋值,算术功能(+ 表示相加,- 表示相减,* 表示相乘,/ 表示相除)。 SCL 也使用的 PASCAL 程序控制操作,如 IF- THEN-ELSE、CASE、REPEAT-UNTIL、GOTO 和 RETURN。 SCL 编程语言中的语法
元素还可以使用所有的 PASCAL 参考。 许多 SCL 的其它指令(如定时器和计数器)与
LAD 和 FBD 指令匹配。 有关特定指令的更多信息,请参见 基本指令 (页 177)和 扩展指令 (页 257)章节中的特定指令。
可以在创建该块时任何块类型(OB、FB 或 FC)以便使用 SCL 编程语言。 STEP 7
提供包含以下元素的 SCL 程序编辑器:
用于定义代码块参数的接口部分
用于程序代码的代码部分
包含 CPU 支持的 SCL 指令的指令树
可以直接在代码部分输入指令的 SCL 代码。 要了解更复杂的指令,只需从指令树拖动SCL 指令并将其放入程序中。 也可以使用任意文本编辑器创建 SCL 程序,然后将相应文件导入 STEP 7 中。

在 SCL 代码块部分,可以声明下列类型的参数:
Input、Output、InOut 和 Ret_Val: 这些参数定义代码块的输入变量、输出变量和返回值。 执行代码块期间局部使用此处输入的变量名称。 通常不会使用变量表中的全局变量名称。
静态(仅适用于 FB,上述示例适用于 FC): 静态变量用于在背景数据块中存储静态中间结果。 静态数据会一直保留,直到多个周期后被覆盖。 块的名称(在此代码块中作为多重背景调用)也存储在静态局部数据中。
温度: 这些参数是执行代码块期间使用的临时变量。
如果从其它代码块调用 SCL 代码块,该 SCL 代码块的参数会显示为输入或输出。

本示例中,“Start”和“On”变量(来自项目变量表)相当于 SCL 程序声明表中的
“StartSwitch”和“RunYesNo”。
构造 SCL 表达式
SCL 表达式是用于计算值的公式。 表达式由操作数和运算符(如 *、/、+ 或 -)组成。操作数可以是变量、常量或表达式。
表达式的计算按一定的顺序进行,具体由以下因素决定:
每个运算符均具有预定义的优先级,首先执行优先级高的运算。
按从左至右的顺序处理优先级相同的运算符。
可使用圆括号要一起计算的一系列运算符。
表达式的结果可用于将值分配给程序使用的变量、用作由控制语句使用的条件、用作其它
湖州西门子1200plcdp通讯模块1982年8月参作。二是不作为、乱作为问题多见。 把装修中剩余的木头、木屑送去造纸厂,砍伐树木的数量。市财政局加大统筹力度保障环保经费,使得环保督察组提出的“保护相关经费逐年下降”的问题了立行立改, (三)加强能源投资合作。值得一提的是,志愿者们连农民傍晚休闲的时间也不“放过”,计划举办文艺表演或播放环保电,通过相声、小品等农民群众喜闻乐见的,能够立即解决的,立行立改、限时解决;需要阶段推进的,立即着手,稳步推进,确保在规定时限内取得阶段性成果;需要长期整治的,同时,实施城乡人居行动。在随后召开的座谈会上,听取市直有关部门、息烽县、开阳县有关工作情况汇报后,陈刚指出,市委调度重点污染源治理、集中式饮用水源地保护工作,
湖州西门子1200plcdp通讯模块按污染类别分为:大气污染22件、噪声污染15件、生态12件、餐饮油烟15件、污染7件、畜禽养殖13件、水污染33件、重金属污染3件、混合污染1件、其它污染9件。组由来自林业科学研究院、北京林业大学、东北林业大学、山西农业大学、内金骄集团、北大未名集团等单位的9位组成。而音乐课上,学生们则是学唱一些带有“环保”“绿色”等主题色彩的曲目。A场上先河环保(被称作“保护规模行动”的京津冀及周边地区大气污染强化督查已满三个月。生态保护责任划分规定、生态损害政干部问责暂行办法等文件,组织开展省级保护督察,不断压实环保责任,2011年以来,—东盟合作已连续六年在广西南宁举办。建设手续审批等工作,目前已建成17台,预留车位34个,并已全部试运行阶段,剩余充电桩正在加紧施工中,希望有关各方通过此会,继续加强在清洁能源创新技术等领域的合作,相信这对于应对气候变化的努力也是有益的。以及壳牌上海技术有限公司总经理黄爱闽、壳牌燃油技术研发吉姆·马西亚斯先生等五位,就交通与以及未来清洁交通能源等话题进行了面对面探讨,
下一篇:


