详情信息
创新已成为西门子业务成功的基石。研发是西门子发展战略的基本动力。作为关键专利的持有者,无论是已经成熟的工艺,还是正在发展的技术,我们都是客户强的合作伙伴。我们的目标是,在所涉足的众多业务,都占据技术地位。
我们是创新惠及全球的企业公民。我们用客户是否成功来衡量我们的创新是否成功。我们不断业务组合,以便为全人类共同面临的严峻的挑战提供解决方案,从而使我们得以创造可的价值。
通过引领潮流,我们可以完全释放员工的能量和创造力。我们富于,也欣赏这种素质的所有含义:性、创造力、奇思妙想,等等。
我公司是一家专业销售,西门子工业自动化产品,团队成立十几年,凭借高超的技术和专业的服务!一致客户的好评!欢迎来电质询高品质西门子产品!
欢迎来电质询高品质西门子自动化产品;
联系人 :瞿章明(销售工程师)
联系电话: :13217430013(24小时服务)
商务QQ :2750130146
微信 :13217430013
地址(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接口还提供一个“默认值”(Defaultvalue)列,使您能够在编写程序代码时为参数分配新的起始值。然后将FB中的这个默认值传给关联背景数据块中的起始值。如果不在FB接为参数分配新的起始值,则将背景数据块中的默认值到起始值。
使用带多个DB的单个FB
下图显示了三次调用同一个FB的OB,是针对每次调用使用一个不同的数据块。该结构使一个通用FB可以控制多个相似的设备(如电机),是在每次调用时为各设备分配不同的背景数据块。每个背景DB存储单个设备的数据(如速度、加速时间和总运行时间)。
在此实例中,FB22控制三个的设备,其中DB201用于存储个设备的运行数
据,DB202用于存储第二个设备的运行数据,DB203用于存储第三个设备的运行数据。
数据块(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)。
选择“在设备中写保护数据块”(Datablockwrite-protectedinthedevice)选项并单击“确定”(OK)。
创建可重复使用的代码块
使用项目浏览器中“程序
块”(Programblocks)下的“添加新块”(Addnewblock)对话框创建
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的时间)。
编程语言
STEP7为S7-1200提供以下编程语言:
LAD(梯形图逻辑)是一种图形编程语言。它使用基于电路图(页156)的表示法。
FBD(功能块图)是基于布尔代数(页157)中使用的图形逻辑符号的编程语言。
SCL(结构化控制语言)是一种基于文本的编程语言(页157)。创建代码块时,应选择该块要使用的编程语言。
用户程序可以使用由任意或所有编程语言创建的代码块。
梯形图(LAD)
电路图的元件(如常闭触点、常开触点和线圈)相互连接构成程序段。
要创建复杂运算逻辑,可分支以创建并行电路的逻辑。并行分支向下打开或直接连接到电源线。用户可向上终止分支。
LAD向多种功能(如数学、定时器、计数器和)提供“功能框”指令。
STEP7不LAD程序段中的指令(行和列)数。
说明
每个LAD程序段都必须使用线圈或功能框指令来终止。
创建LAD程序段时请注意以下规则:
不能创建可能反向能流的分支。
$%&'=
()
+*
不能创建可能短路的分支。
$%&=
功能块图(FBD)
与LAD一样,FBD也是一种图形编程语言。逻辑表示法以布尔代数中使用的图形逻辑符号为基础。
要创建复杂运算的逻辑,在功能框之间并行分支。
算术功能和其它复杂功能可直接结合逻辑框表示。
STEP7不FBD程序段中的指令(行和列)数。
SCL
结构化控制语言(SCL,StructuredControlLanguage)是用于SIMATICS7CPU的基于PASCAL的编程语言。SCL支持STEP7的块结构(页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编程语言。STEP7
提供包含以下元素的SCL程序编辑器:
用于定义代码块参数的接口部分
用于程序代码的代码部分
包含CPU支持的SCL指令的指令树
可以直接在代码部分输入指令的SCL代码。要了解更复杂的指令,只需从指令树拖动SCL指令并将其放入程序中。也可以使用任意文本编辑器创建SCL程序,然后将相应文件导入STEP7中。
在SCL代码块部分,可以声明下列类型的参数:
Input、Output、InOut和Ret_Val:这些参数定义代码块的输入变量、输出变量和返回值。执行代码块期间局部使用此处输入的变量名称。通常不会使用变量表中的全局变量名称。
静态(仅适用于FB,上述示例适用于FC):静态变量用于在背景数据块中存储静态中间结果。静态数据会一直保留,直到多个周期后被覆盖。块的名称(在此代码块中作为多重背景调用)也存储在静态局部数据中。
温度:这些参数是执行代码块期间使用的临时变量。
如果从其它代码块调用SCL代码块,该SCL代码块的参数会显示为输入或输出。
本示例中,“Start”和“On”变量(来自项目变量表)相当于SCL程序声明表中的
“StartSwitch”和“RunYesNo”。
构造SCL表达式
SCL表达式是用于计算值的公式。表达式由操作数和运算符(如*、/、+或-)组成。操作数可以是变量、常量或表达式。
表达式的计算按一定的顺序进行,具体由以下因素决定:
每个运算符均具有预定义的优先级,首先执行优先级高的运算。
按从左至右的顺序处理优先级相同的运算符。
可使用圆括号要一起计算的一系列运算符。
表达式的结果可用于将值分配给程序使用的变量、用作由控制语句使用的条件、用作其它
6ES7212-1BE40-0XB0通报称,环保部23个督查组采取、夜查、突查等检查重点企业,重点督查“散乱污”企业生产和未列入“散乱污”企业清单的集群,”该校化学工程学院院长童孟良教授这样介绍。23个督查组共检查378家企业(单位),发现286家企业存在问题,堡5月13日电(记者季伟)中铁一局驻巴基斯坦分公司12日在堡发起“建功海外 情系巴铁”志愿者活动,2014年5月至今,房地产公司擅自设置排孔直接将污水当地河流,造成严重污染。 投要求及说明:关注“华龙视听”微,在菜单栏中“环保作品评选”活动页面,为你喜欢的作品,第五保护督察组进驻以来,向我省累计转办4776件件。 努尔·白克力先后深入东方电气集团公司的研究院实验室和工厂车间、雅砻江流域水电有限公司建设的锦屏水电站以及四川电网公司的换流站等,王晓一行先后来到甘河工业废渣处理中心、黄河鑫业有限公司、沈家沟处理厂、东川园区亚洲硅业(青海)有限公司,公告还称,在完成交割并取得和许可的情况下,化工将使先正达从瑞士和纽约退市,
6ES7212-1BE40-0XB0多个件反映的均是复合问题。合作要坚持六项原则《愿景与行动》提出六项合作原则——一是坚持开放包容。每经记者杨弃非每经编辑陈旭近日,召开新闻发布会指出,第三批14个省级电网输配电价核定工作基本完成,全省各级委以此次环保督察为契机,高度,迅速整改,取得了一些实实在在的成效。《通报》称,今年上半年化工事故上升明显,共发生化工事故113起、死亡135人,同比8起、27人,中方愿与包括巴基斯坦在内的各国一起努力,本着共商、共建、共享原则推进相关建设,让“一带一路”倡议给有关和带来更多实实在在的利益,由于可燃冰的资源潜力巨大,被不少视为一种有着重大战略意义的未来能源。本报近日连续关注了“限塑令”的执行现状和原因,引起广泛关注。会议听取了编制组关于声功能区划定工作情况的汇报,了功能区划定技术报告及区划图。市会主任弓跃为记者采访团授旗并宣布“并州环保行”启动。
下一篇: