您好,杭州萧优自动化科技有限公司网站欢迎您!
6ES7288-1ST40-0AA0 西门子全新原装 SIMATIC S7-200 SMART,CPU ST40, 上,DC/DC/DC, 机载 I/O: 24 个 24V DC 数字输入;16DO 24V DC; 电源:直流 20.4-28.8V DC, 程序存储器/数据存储器 40 KB
SIMATIC S7-200 SMART,CPU ST40, 上,DC/DC/DC, 机载 I/O: 24 个 24V DC 数字输入;16DO 24V DC; 电源:直流 20.4-28.8V DC, 程序存储器/数据存储器 40 KB
创建符号名称列表(可选)
如果选择使用符号名称进行寻址,需要对绝对地址创建一个符号名称列表。
不仅要包含物理 I/O 信号,也要包含程序中要用到的其它元素。
编程概念
5.2 用户程序的元素
S7-200 SMART
系统手册, V2.4, 03/2019, A5E03822234-AF 103
5.2 用户程序的元素
程序组织单元 (POU) 由可执行代码和注释组成。
可执行代码由主程序和若干子例程或中断例程组成。 代码已编译并下载到 CPU 中。
可以使用程序组织单元(主程序、子例程和中断例程)来结构化用户程序。
● 用户程序主体包括控制应用的指令。 CPU
将按顺序执行这些指令,每个扫描周期执行一次。
● 子例程是只有在调用时才执的程序的可选元素:
由主程序、中断例程或另一子例程执行。
当您希望重复执行某种功能时,子例程是非常有用的
与其在主程序中每个需要使用该功能的位置多次写入相同的程序代码,不如将这段逻
辑写在子例程中,然后根据需要在主程序中调用该子例程。 子例程具有以下优点:
– 使用子例程可以减小程序的大小。
– 由于已将代码移出主程序,因而使用子例程可以缩短扫描时间。 CPU
在每个扫描周期都会评估主程序中的代码,不管代码是否执行,而 CPU
仅在调用子例程时评估其代码,如果扫描时不调用子例程,CPU 不会评估其代码。
– 使用子例程创建的代码是可移植的。
您可以在一个子例程中完成一个独立的功能,然后将该子例程复制到另其它程序中
,无需进行重复工作。
说明
使用 V 存储器地址会限制子例程的可移植性,因为一个程序对于 V
存储器地址的分配有可能与另一个程序对它的分配有冲突。
相比之下,在子例程中为全部地址分配使用局部变量表(L
存储器)会使子例程具有极高的可移植性,因为当子例程使用局部变量时,子例程
与程序的其它部分之间就不会有地址冲突。
编程概念
5.2 用户程序的元素
S7-200 SMART
104 系统手册, V2.4, 03/2019, A5E03822234-AF
● 中断例程是程序的可选元素,发生特定中断事件时,中断例程会进行响应。
您可以设计一个中断例程来处理预先定义好的中断事件。 当指定事件发生时,CPU
会执行该中断例程。
中断例程不会被主程序调用。
只有当中断例程与一个中断事件相关联,并且在该中断事件发生时,CPU
才会执行中断例程中的指令。
说明
由于无法预测 CPU
何时会产生中断,所以应考虑尽量限制中断例程和程序中其它部分所共用的变量个数
使用中断例程的局部变量表可确保中断例程仅使用临时存储器,从而不会覆盖程序其
它位置使用的数据。
为了保证主程序与中断例程正确地共享数据,您可以使用许多编程技巧。
请参见中断指令 (页 335)的说明。
● 其它块中包含 CPU 的信息。 下载程序时,您可以选择下载这些块:
– 系统块: 系统块允许您为 CPU 组态不同的硬件选项。
– 数据块: DB 存储程序使用的不同变量的初始值(V 存储器)。
编程概念
5.3 创建用户程序
S7-200 SMART
系统手册, V2.4, 03/2019, A5E03822234-AF 105
下例中给出了一段包含子例程和中断例程的程序。 此示例程序使用定时中断,每 100 ms
读取一次模拟量输入值。
表格 5- 1 包含子例程和中断例程的示例程序
主程序 Network 1
LD SM0.1
CALL SBR_0
首次扫描时,调用子例
程 0。
SBR 0 Network 1
LD SM0.0
MOVB 100, SMB34
ATCH INT_0, 10
ENI
将定时中断的时间间隔
设置为 100 ms。
启用中断 0。
INT 0 Network 1
LD SM0.0
MOVW AIW4,VW100
对模拟量输入 AI4
的值进行采样。
5.3 创建用户程序
STEP 7-Micro/WIN SMART
的用户界面为创建用户项目程序提供了一个便捷的工作环境。