长沙分类信息网-长沙新闻网

重庆西门子S7-1200代理商(欢迎您)总代理

2024-3-19 17:14:05发布次查看发布人:
重庆西门子s7-1200代理商(欢迎您)总代理西门子s7-1200plc编程语言step 7 为 西门子s7-1200 提供以下标准编程语言:
lad(梯形图逻辑)是一种图形编程语言。它使用基于电路图的表示法。fbd(能块图)是基于布尔代数中使用的图形逻辑符号的编程语言。scl(结构化控制语言)是一种基于文本的高级编程语言。 创建代码块时,应选择该块要使用的编程语言。 用户程序可以使用由任意或所有编程语言创建的代码块。梯形图 (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 的块结构 。 可以使用以下三种编程语言之一将程序块包括到项目中:scl、lad 和 fbd。
scl 指令使用标准编程运算符,例如,用 (:=) 表示赋值,算术功能(+ 表示相加,- 表示相减,* 表示相乘,/ 表示相除)。 scl 也使用标准的 pascal 程序控制操作,如 if-then-else、case、repeat-until、goto 和 return。 scl
编程语言中的语法元素还可以使用所有的 pascal 参考。 许多 scl 的其它指令(如定时器和计数器)与 lad 和 fbd 指令匹配。 有关特定指令的更多信息,请参见基本指令 和扩展指令章节中的特定指令。
scl 程序编辑器可以在创建该块时指定任何块类型(ob、fb 或 fc)以便使用 scl 编程语言。 step 7
提供包含以下元素的 scl 程序编辑器:
用于定义代码块参数的接口部分用于程序代码的代码部分包含cpu支持的 scl 指令的指令树 可以直接在代码部分输入指令的 scl 代码。编辑器包含用于通用代码结构和注释的按钮。 要了解更复杂的指令,只需从指令树拖动
scl 指令并将其放入程序中。 也可以使用任意文本编辑器创建 scl程序,然后将相应文件导入 step 7 中。
在 scl 代码块接口部分,可以声明下列类型的参数:
●input、output、inout 和 ret_val: 这些参数定义代码块的输入变量、输出变量和返回值。 执行代码块期间局部使用此处输入的变量名称。 通常不会使用变量表中的全局变量名称。
●static(仅适用于 fb,上述示例适用于 fc): 代码块使用静态变量在背景数据块中存储静态中间结果。 块会一直保留静态数据,直到多个周期后被覆盖。 块的名称(此块将其作为多重背景调用)也存储在静态局部数据中。
●temp:这些参数是执行代码块期间使用的临时变量。
●constant:这些是为代码块指定的常数值。
如果从其它代码块调用 scl 代码块,该 scl 代码块的参数会显示为输入或输出。
本示例中,“start”和“on”变量(来自项目变量表)相当于 scl程序声明表中的“startstopswitch”和“runyesno”。
scl 表达式和运算构造 scl 表达式
scl 表达式是用于计算值的公式。 表达式由操作数和运算符(如 *、/、+ 或 -)组成。 操作数可以是变量、常量或表达式。
表达式的计算按一定的顺序进行,具体由以下因素决定:
每个运算符均具有预定义的优先级,首先执行优先级最高的运算。按从左至右的顺序处理优先级相同的运算符。可使用圆括号指定要一起计算的一系列运算符。 表达式的结果可用于将值分配给程序使用的变量、用作由控制语句使用的条件、用作其它scl 指令的参数或者用于调用代码块。表格 7- 2 scl 中的运算符
类型 操作 操作员 优先级
圆括号 (表达式) ( , ) 1
数学 乘方 ** 2
符号(一元加号) + 3
符号(一元减号) - 3
倍增 * 4
除法 / 4
取模 mod 4
加法 + 5
减法 - 5
比较 小于 < 6
小于或等于 <= 6
大于 > 6
大于或等于 >= 6
等于 = 7
不等于 <> 7
位逻辑 取反(一元) not 3
and 逻辑运算 and 或 & 8
类型 操作 操作员 优先级
异或逻辑运算 xor 9
or 逻辑运算 or 10
赋值 赋值 := 11
作为一种高级编程语言,scl 使用标准语句实现基本任务:
赋值语句::=算术功能:+、-、*和 /全局变量的寻址:<变量名称>(变量名称或数据块名称括在双引号内)局部变量的寻址:#<变量名称>(在变量名称前加“#”符号) 以下示例显示了用法不同的各种表达式。c := #a+#b; 将两个局部变量之和赋值给一个变量
data_block_1.tag := #a; 为数据块变量赋值
if #a > #b then c := #a; if-then语句的条件
c := sqrt (sqr (#a) + sqr (#b)); sqrt指令的参数
算术运算符可以处理各种数值数据类型。 结果的数据类型取决于最高有效操作数的数据类型。 例如,使用 int 操作数和 real 操作数的乘法运算会产生 real 结果值。
控制语句 控制语句是 scl 表达式的一种专用类型,可用于执行以下任务:
程序分支重复scl编程代码的某些部分跳转到scl程序的其它部分按条件执行scl 控制语句包括 if-then、case-of、for-to-do、while-do、repeat-until、continue、goto 和 return。
一条语句通常占一行代码。 可以在一行中输入多条语句,或者可将一条语句断开成多行代码以使代码易于阅读。 分隔符(如制表符、换行符和多余空格)在语法检查期间会被忽略。 end 语句可终止控制语句。
以下示例显示的是 for-to-do 控制语句。 (两种形式的代码在语法上均有效。)
for x := 0 to max do sum := sum + value(x); end_for;
for x := 0 to max do
sum := sum + value(x); end_for;
还可以为控制语句提供标签。 用语句前的逗点将标签隔开:
label: <语句>;
有关完整的 scl 编程语言参考,请参见 step 7 在线帮助。
条件
条件是一个比较表达式或逻辑表达式,其结果为 bool 类型(值为 true 或 false)。 以下示例显示了各种类型的条件。
#temperature > 50
#counter <= 100
#char1 < 's'
关系表达式
(#alpha <> 12) and not #beta 比较和逻辑表达式
5 + #alpha 算术表达式
条件可以使用算术表达式:
如果结果是非零的任何值,则表达式的条件为true。如果结果为零,则表达式的条件为false。从 scl 程序中调用其它代码块
要调用用户程序中的其它代码块,只需使用参数输入 fb 或 fc 的名称(或绝对地址)。 对于 fb,还必须提供 fb 待调用的背景数据块。
<db 名称> (参数列表) 作为单个背景调用
<#背景名称> (参数列表) 作为多重背景调用
mydb(myinput:=10, myinout:=tag1);
<fc 名称> (参数列表) 标准调用
<操作数>:=<fc 名称> (参数列表) 在表达式中调用
myfc(myinput:=10, myinout:=tag1);
还可将块从导航树中拖动到 scl 程序编辑器中,然后完成参数分配。
将块注释添加到 scl 代码
可通过在 (* 和 *) 之间加入注释文本,将块注释添加到 scl 代码中。 可在 (* 和 *) 之间添加任意数目的注释行。 scl 程序块可能包括多个块注释。 为方便编程,scl 编辑器包括一个块注释按钮和通用控制语句:
寻址
与 lad 和 fbd 一样,scl 允许用户在用户程序中使用变量地址(符号寻址)或绝对地址。 scl 还允许使用变量作为数组索引。
绝对寻址
%i0.0 在绝对地址之前加上“%”符号。 没有“%”,step 7
将在编译时生成未定义的变量错误。
符号寻址
plc_tag_1 plc 变量表中的变量
data_block_1.tag_1 数据块中的变量
data_block_1.myarray[#i] 数据块数组中的数组元素
使用 peek 和 poke 指令进行索引寻址scl 提供 peek 和 poke 指令,可用来从数据块、i/o 或存储器中读取内容或是向其中写入内容。 而您提供操作中具体字节偏移量或位偏移量的参数。
与数据块一起使用 peek 和 poke 指令时,必须使用标准(未优化的)数据块。 同时需要注意 peek 和 poke 指令仅用于传输数据。 它们无法识别地址中的数据类型。
lad、fbd和 scl 的 en 和 eno 
确定指令的“能流”(en 和 eno)
特定指令(如数学和移动指令)为 en 和 eno 提供参数。 这些参数与 lad 或 fbd 中的能流有关并确定在该扫描期间是否执行指令。 scl 还允许用户为代码块设置 eno 参数。
en(使能输入)是布尔输入。要执行功能框指令,能流(en = 1) 必须出现在此输入端。 如果 lad 框的 en 输入直接连接到左侧电源线,将始终执行该指令。eno(使能输出)是布尔输出。如果该功能框在en 输入端有能流且正确执行了其功能,则 eno 输出会将能流 (eno = 1) 传递到下一个元素。 如果执行功能框指令时检测到错误,则在产生该错误的功能框指令处终止该能流 (eno= 0)。
表格 7- 3 en 和 eno 的操作数
程序编辑器 输入/输出 操作数 数据类型
lad en, eno 能流 bool
fbd en i、i:p、q、m、db、temp、能流 bool
eno 能流 bool
scl en1 true, false bool
eno2 true, false bool
1 en 仅适用于 fb。
2 可以选择将 eno 与 scl 代码块一起使用。 代码块完成时,用户必须组态 scl
编译器来设置 eno。
通过组态 scl 来设置 eno
要组态 scl 编译器以设置 eno,请按以下步骤操作: 1. 从“选项”(options) 菜单中选择“设置”(settings) 命令。
展开“plc 编程”(plc programming)属性并选择“scl(结构化控制语言)”(scl(structured control language))。选择“自动设置eno”(set eno automatically) 选项。 plc控制系统的日常维护和保养比较简单,主要是更换保险丝和锂电池,基本没有其它易损元器件。由于存放用户程序的随机存储器(ram)、计数器和具有保持功能的辅助继电器等均用锂电池保护,锂电池的寿命大约为5年,当锂电池的电压逐渐降低到一定程度时,plc基本单元上电池电压跌落到指示灯亮,提示用户注意有锂电池所支持的程序还可保留一周左右,必须更换电池,这是日常维护的主要内容。
调换锂电池的步骤为:
■在拆装前,应先让plc通电15秒以上(这样可使作为存储器备用电源的电容器充电,在锂电池断开后,该电容可对plc做短暂供电,以保护ram 中的信息不丢失);
■断开plc的交流电源;
■打开基本单元的电池盖板;
■取下旧电池,装上新电池;
■盖上电池盖板。
注意更换电池时间要尽量短,一般不允许超过3分钟。如果时间过长,ram中的程序将消失。
此外,应注意更换保险丝时要采用指定型号的产品。
i/o模块的更换
若需替换一个模块,用户应确认被安装的模块是同类型。有些i/o系统允许带电更换模块,而有些则需切断电源。若替换后可解决问题,但在一相对较短时间后又发生故障,那么用户应检查能产生电压的感性负载,也许需要从外部抑制其电流尖峰。如果保险丝在更换后易被烧断,则有可能是模块的输出电流超限,或输出设备被短路。
plc的故障诊断是一个十分重要的问题,是保证plc控制系统正常、可靠运行的关键。本文对常用的故障诊断方法进行了探讨。在实际工作过程中,应充分考虑到对plc的各种不利因素,定期进行检查和日常维护,以保证plc控制系统安全、可靠地运行。
plc的硬件组成部分都有哪些
plc的硬件主要由中央处理器(cpu)、存储器、输入单元、输出单元、通信接口、扩展接口电源等部分组成。其中,cpu是plc的核心,输入单元与输出单元是连接现场输入/输出设备与cpu之间的接口电路,通信接口用于与编程器、上位计算机等外设连接。
对于整体式plc,所有部件都装在同一机壳内;对于模块式plc,各部件独立封装成模块,各模块通过总线连接,安装在机架或导轨上。无论是哪种结构类型的plc,都可根据用户需要进行配置与组合。
尽管整体式与模块式plc的结构不太一样,但各部分的功能作用是相同的,下面对plc主要组成各部分进行简单介绍。
1、中央处理单元(cpu)
同一般的微机一样,cpu是plc的核心。plc中所配置的cpu 随机型不同而不同,常用有三类:通用微处理器(如z80、8086、80286等)、单片微处理器(如8031、8096等)和位片式微处理器(如amd29w等) 。小型plc大多采用8位通用微处理器和单片微处理器;中型plc大多采用16位通用微处理器或单片微处理器;大型plc大多采用高速位片式微处理器。
目前,小型plc为单cpu系统,而中、大型plc则大多为双cpu系统,甚至有些plc中多达8 个cpu。对于双cpu系统,一般一个为字处理器,一般采用8位或16位处理器;另一个为位处理器,采用由各厂家设计制造的专用芯片。字处理器为主处理器,用于执行编程器接口功能,监视内部定时器,监视扫描时间,处理字节指令以及对系统总线和位处理器进行控制等。位处理器为从处理器,主要用于处理位操作指令和实现plc编程语言向机器语言的转换。位处理器的采用,提高了plc的速度,使plc更好地满足实时控制要求。
在plc中cpu按系统程序赋予的功能,指挥plc有条不紊地进行工作,归纳起来主要有以下几个方面:
1)接收从编程器输入的用户程序和数据。
2)诊断电源、plc内部电路的工作故障和编程中的语法错误等。
3)通过输入接口接收现场的状态或数据,并存入输入映象寄有器或数据寄存器中。
4)从存储器逐条读取用户程序,经过解释后执行。
5)根据执行的结果,更新有关标志位的状态和输出映象寄存器的内容,通过输出单元实现输出控制。有些plc还具有制表打印或数据通信等功能。
2、存储器
存储器主要有两种:一种是可读/写操作的随机存储器ram,另一种是只读存储器rom、prom 、eprom 和eeprom。在plc中,存储器主要用于存放系统程序、用户程序及工作数据。
系统程序是由plc 的制造厂家编写的,和plc的硬件组成有关,完成系统诊断、命令解释、功能子程序调用管理、逻辑运算、通信及各种参数设定等功能,提供plc运行的平台。系统程序关系到plc的性能,而且在plc使用过程中不会变动,所以是由制造厂家直接固化在只读存储器rom、prom或eprom中,用户不能访问和修改。
用户程序是随plc的控制对象而定的,由用户根据对象生产工艺的控制要求而编制的应用程序。为了便于读出、检查和修改,用户程序一般存于cmos静态ram中,用锂电池作为后备电源,以保证掉电时不会丢失信息。为了防止干扰对ram中程序的破坏,当用户程序经过运行正常,不需要改变,可将其固化在只读存储器eprom中。现在有许多plc直接采用eeprom作为用户存储器。
工作数据是plc运行过程中经常变化、经常存取的一些数据。存放在ram中,以适应随机存取的要求。在plc的工作数据存储器中,设有存放输入输出继电器、辅助继电器、定时器、计数器等逻辑器件的存储区,这些器件的状态都是由用户程序的初始设置和运行情况而确定的。根据需要,部分数据在掉电时用后备电池维持其现有的状态,这部分在掉电时可保存数据的存储区域称为保持数据区。
由于系统程序及工作数据与用户无直接联系,所以在plc 产品样本或使用手册中所列存储器的形式及容量是指用户程序存储器。当plc提供的用户存储器容量不够用,许多plc还提供有存储器扩展功能。
重庆西门子s7-1200代理商(欢迎您)总代理
该用户其它信息

推荐信息

长沙分类信息网-长沙新闻网
关于本站