Anda di halaman 1dari 265

第 2 章 PROSYD 1131 概述

2 PROSYD 1131 概述 .......................................................................................................................................... 14


2.1 PROSYD 1131 软件简介 .......................................................................................................................... 14
2.2 PROSYD 1131 功能概述 .......................................................................................................................... 14
2.2.1 项目结构......................................................................................................................................... 14
2.2.2 创建项目......................................................................................................................................... 14
2.2.3 测试项目......................................................................................................................................... 14
2.2.4 调试................................................................................................................................................. 14
2.2.5 其它在线工具 ................................................................................................................................. 14
2.2.6 辅助功能......................................................................................................................................... 15
2.2.7 总结................................................................................................................................................. 15
2.3 项目单元.................................................................................................................................................... 15
2.3.1 项目................................................................................................................................................. 15
2.3.2 POU (程序组织单元) ............................................................................................................. 15
2.3.3 函数(FUNCTION)..................................................................................................................... 15
2.3.4 功能块............................................................................................................................................. 17
2.3.5 功能块实例 ..................................................................................................................................... 17
2.3.6 功能块的调用 ................................................................................................................................. 18
2.3.7 程序................................................................................................................................................. 20
2.3.8 PLC_PRG......................................................................................................................................... 21
2.3.9 动作(Action) ................................................................21
2.3.10 程序资源....................................................................................................................................... 22
2.3.11 库文件 ........................................................................................................................................... 22
2.3.12 数据类型....................................................................................................................................... 22
2.3.13 可视化工具 ................................................................................................................................... 23
2.4 编程语言.................................................................................................................................................... 23
2.4.1 语句表 (IL) .................................................................................................................................... 23
2.4.1.1 IL 语言的修饰符和运算符............................................................................................... 23
2.4.2 结构化文本语言 (ST).................................................................................................................... 25
2.4.2.1 表达式 ................................................................................................................................ 25
2.4.2.2 表达式计算 ........................................................................................................................ 25
2.4.2.3 赋值语句 ............................................................................................................................ 26
2.4.2.4 在 ST 中调用功能块。 ..................................................................................................... 27
2.4.2.5 RETURN 语句 .................................................................................................................. 27
2.4.2.6 IF 语句 .............................................................................................................................. 27
2.4.2.7 CASE 语句........................................................................................................................ 28
2.4.2.8 FOR 循环语句 .................................................................................................................. 28
2.4.2.9 WHILE 循环语句 ............................................................................................................. 29
2.4.2.10 REPEAT 循环语句 ......................................................................................................... 30
2.4.2.11 EXIT 语句 ....................................................................................................................... 30
2.4.3 顺序功能图 (SFC) ......................................................................................................................... 30
2.4.3.1 步骤(Step) ..................................................................................................................... 31
2.4.3.2 动作.................................................................................................................................... 31
2.4.3.3 入口或出口动作 ................................................................................................................ 32
2.4.3.4 步骤的执行 ........................................................................................................................ 32
2.4.3.5 IEC 步骤............................................................................................................................ 32
第 2 章 PROSYD 1131 概述
2.4.3.6 限定符 ................................................................................................................................ 33
2.4.3.7 SFC 中的隐含变量 ........................................................................................................... 34
2.4.3.8 SFC 标志........................................................................................................................... 34
2.4.3.9 选择分支 ............................................................................................................................ 35
2.4.3.10 并行分支 ............................................................................................................................ 35
2.4.3.11 跳转 .................................................................................................................................... 35
2.4.4 功能块图(FBD) ......................................................................................................................... 35
2.4.5 连续功能块图(CFC)....................................................................................................................... 36
2.4.6 梯形图 (LD) ................................................................................................................................... 36
2.4.6.1 触点...................................................................................................................................... 37
2.4.6.2 线圈...................................................................................................................................... 37
2.4.6.3 梯形图中的功能块 .............................................................................................................. 37
希望利用触点去控
制其它POU,可采 2.4.6.4 置位/复位线圈..................................................................................................................... 37
用两种方法 2.4.6.5 LD 与 FBD...................................................................................................................... 37
2.5 调试及在线功能........................................................................................................................................ 38
2.5.1 采样轨迹(Sampling Trace)........................................................................................................ 38
2.5.2 调试 (Debugging)........................................................................................................................... 38
2.5.3 断点(Breakpoint) ................................................................................................................. 38
2.5.4 单步执行(Single step) ............................................................................................................... 38
2.5.5 单循环(Single Cycle) ................................................................................................................ 38
2.5.6 在线修改数值(Chang values online)......................................................................................... 38
2.5.7 监控................................................................................................................................................. 39
2.5.8 仿真................................................................................................................................................. 40
2.5.9 日志................................................................................................................................................. 40
2.6 标准............................................................................................................................................................ 40
3 编程实例............................................................................................................................................................... 40
3.1 交通信号灯控制实例 ................................................................................................................................ 40
3.1.1 创建 POU ....................................................................................................................................... 40
3.1.2 TRAFFICSIGNAL 的作用是什么? .......................................................................................... 41
3.1.3 WAIT 的作用是什么? ............................................................................................................... 41
3.1.4 SEQUENCE 的作用是什么? .................................................................................................... 41
3.1.5 PLC_PRG 的作用是什么? ........................................................................................................ 41
3.1.6 "TRAFFICSIGNAL" 声明........................................................................................................... 41
3.1.7 "TRAFFICSIGNAL" 主体........................................................................................................... 41
3.1.8 连接标准库(standard.lib) .......................................................................................................... 43
3.1.9 "WAIT" 声明................................................................................................................................... 43
3.1.10 "WAIT" 主体.............................................................................................................................. 43
3.1.11 "SEQUENCE" 第一扩展级 .......................................................................................................... 44
3.1.12 创建 SFC 图表.......................................................................................................................... 45
3.1.13 动作及转换条件 ......................................................................................................................... 46
3.1.14 "SEQUENCE" 第二扩展级 ....................................................................................................... 48
3.1.15 结果............................................................................................................................................. 49
3.1.16 PLC_PRG....................................................................................................................................... 49
3.1.17 TRAFFICSIGNAL 仿真 ............................................................................................................... 51
第 2 章 PROSYD 1131 概述
3.2 图形化交通信号灯 .................................................................................................................................... 51
3.2.1 创建新图形 ..................................................................................................................................... 51
3.2.2 插入图形元件 ................................................................................................................................. 51
3.2.3 其它交通灯 ..................................................................................................................................... 52
3.2.4 TRAFFICSIGNAL 灯箱 .............................................................................................................. 53
3.2.5 第二个交通信号灯 ......................................................................................................................... 53
3.2.6 开关 ON ....................................................................................................................................... 53
3.2.7 图形中的字体 ............................................................................................................................... 54
4 PROSYD 1131 的组件 .......................................................................................................................................... 55
4.1 主画面........................................................................................................................................................ 55
4.1.1 主菜单............................................................................................................................................. 55
4.1.2 工具条............................................................................................................................................. 55
4.1.3 对象管理器 ..................................................................................................................................... 56
4.1.4 屏幕分隔线 ................................................................................................................................... 56
4.1.5 工作区........................................................................................................................................... 56
4.1.6 信息窗口......................................................................................................................................... 56
4.1.7 状态栏............................................................................................................................................. 57
4.1.8 上下文菜单 ................................................................................................................................... 57
4.2.1 ‘Project’ 'Options' ............................................................................................................................. 57
4.2.2 装载及存储选项 ........................................................................................................................... 58
4.2.3 用户信息选项 ............................................................................................................................... 59
4.2.4 编辑器选项 ............................................................................................................................... 59
4.2.4.1 自动声明 .............................................................................................................................. 60
4.2.4.2 自动套用格式 ...................................................................................................................... 60
4.2.4.3 表格式声明 ............................................................................................................... 60
4.2.4.4 打印边界 ................................................................................................................... 60
4.2.4.5 注释.................................................................................................................................... 61
4.2.4.6 制表宽度(Tab –Width) ................................................................................................. 61
4.2.4.7 字体.................................................................................................................................... 61
4.2.4.8 标记.................................................................................................................................... 62
4.2.4.9 数值显示方式 ...................................................................................................................... 62
4.2.5 桌面选项....................................................................................................................................... 62
4.2.6 颜色选项 ................................................................................................................................... 63
4.2.7 目录选项......................................................................................................................................... 64
4.2.8 日志选项......................................................................................................................................... 65
4.2.9 编译选项......................................................................................................................................... 66
4.2.10 密码(Passwords) ...................................................................................................................... 67
4.2.11 源代码下载(Sourcedownload) ................................................................................................ 68
4.2.12 符号配置选项(Symbol Configuration) ................................................................................... 68
4.2.13 ‘宏’选项(Options for 'Macros')................................................................................................. 69
4.3.1 ‘File’ 'New' ....................................................................................................................................... 70
4.3.2 'File' 'Open' ....................................................................................................................................... 70
4.3.3 'File' 'Close'....................................................................................................................................... 71
4.3.4 'File' 'Save' ........................................................................................................................................ 72
第 2 章 PROSYD 1131 概述
4.3.5 'File' 'Save as'.................................................................................................................................... 72
4.3.6 ‘File’ 'Save/Mail Archive'................................................................................................................. 72
4.3.7 ‘File’ 'Print' ....................................................................................................................................... 75
4.3.8 ‘File’ 'Printer setup'........................................................................................................................... 76
4.3.9 ‘File’ 'Exit' ........................................................................................................................................ 77
4.3.10 ‘Project’ 'Build'............................................................................................................................... 77
4.3.11 ‘Project’ 'Rebuild all' ...................................................................................................................... 78
4.3.12 'Project' 'Clean all' .......................................................................................................................... 78
4.3.13 ‘Project’ 'Load Download-Information'.......................................................................................... 79
4.3.14 ‘Project’ 'Translate into another language'...................................................................................... 79
4.3.14.1 创建转换文件 .................................................................................................................... 79
4.3.14.2 编辑转换文件 .................................................................................................................... 82
4.3.14.3 将项目转换(为其他语言)....................................................................................... 82
4.3.15 ‘Project’ 'Document' ....................................................................................................................... 83
4.3.16 ‘Project’ 'Export'............................................................................................................................. 84
4.3.17 ‘Project’ 'Import'............................................................................................................................. 85
4.3.18 ‘Project’ 'Merge' ............................................................................................................................. 85
4.3.19 ‘Project’ 'Compare' ......................................................................................................................... 85
4.3.19.1 ‘Extras’ 'Next difference' ..................................................................................................... 88
4.3.19.2 ‘Extras’ 'Previous difference' ............................................................................................... 88
4.3.19.3 ‘Extras’ 'Accept change' ...................................................................................................... 89
4.3.19.4 ‘Extras’ 'Accept changed item' ............................................................................................ 89
4.3.19.5 ‘Extras’ 'Accept properties'.................................................................................................. 89
4.3.19.6 ‘Extras’ 'Accept access rights' ............................................................................................. 89
4.3.20 ‘Project’ 'Project info' ..................................................................................................................... 89
4.3.21 ‘Project’ 'Global Search' ................................................................................................................. 90
4.3.22 ‘Project’ 'Global replace' ................................................................................................................ 91
4.3.23 ‘Project’ 'Check'.............................................................................................................................. 91
4.3.23.1 未使用变量(Unused Variables) .................................................................................. 91
4.3.23.2 重叠存储区(Overlapping memory areas)................................................................... 92
4.3.23.3 访问冲突(Access conflict)................................................................................................. 92
4.3.23.4 重复写操作(Multiple writes to output) ............................................................. 92
4.3.23.5 用户组(User groups)..................................................................................................... 92
4.3.24 ‘Project’ 'Passwords for user groups'.............................................................................................. 93
4.4.1 对象(Object).............................................................................................................................. 94
4.4.2 文件夹(Folder)........................................................................................................................... 94
4.4.3 ‘新文件夹’('New Folder') .................................................................................................... 95
4.4.4 ‘Expand nodes' 'Collapse nodes'....................................................................................................... 95
4.4.5 ‘Project’ 'Object Delete'.................................................................................................................... 95
4.4.6 ‘Project’ 'Object Add'........................................................................................................................ 95
4.4.7 ‘Project’ 'Object Rename' ................................................................................................................. 96
4.4.8 ‘Project’‘Object Convert' ................................................................................................................. 96
4.4.9 ‘Project’ 'Object Copy'...................................................................................................................... 97
4.4.10 'Project' 'Object Open' .................................................................................................................... 97
第 2 章 PROSYD 1131 概述
4.4.11 ‘Project’ 'Object Access rights' ....................................................................................................... 98
4.4.12 ‘Project’ 'Object properties' ............................................................................................................ 98
4.4.13 ‘Project’ 'Add Action' ..................................................................................................................... 98
4.4.14 ‘Project’ 'Open Instance'................................................................................................................. 98
4.4.15 ‘Project’ 'Show Call Tree' ............................................................................................................... 99
4.4.16 ‘Project’ 'Show cross reference'...................................................................................................... 99
4.5 通用编辑功能........................................................................................................................................ 100
4.5.1 ‘Edit’ 'Undo'.................................................................................................................................... 100
4.5.2 ‘Edit’ 'Redo' .................................................................................................................................... 101
4.5.3 ‘Edit’ 'Cut'....................................................................................................................................... 101
4.5.4 ‘Edit’ 'Copy'.................................................................................................................................... 101
4.5.5 'Edit' 'Paste' .............................................................................................................................. 102
4.5.6 'Edit' 'Delete" .................................................................................................................................. 102
4.5.7 ‘Edit’ 'Find' ..................................................................................................................................... 102
4.5.8 ‘Edit’ 'Find next' ............................................................................................................................. 103
4.5.9 'Edit' 'Replace'........................................................................................................................ 103
4.5.10 'Edit' 'Input Assistant'.................................................................................................................... 103
4.5.10.1 非结构化的显示(Unstructured Display) .................................................................... 104
4.5.10.2 结构化显示(Stuctured Display) ................................................................................. 104
4.5.11 ‘Edit’ 'Declare Variable' ................................................................................................................ 106
4.5.12 ‘Edit’ 'Next error'" ........................................................................................................................ 106
4.5.13 'Edit' 'Previous error'" ............................................................................................................ 106
4.5.14 'Edit' 'Macros' ........................................................................................................................ 106
4.6.1 ‘Online-Change’功能.................................................................................................................. 106
4.6.2 ‘Online’ 'Login'............................................................................................................................... 107
4.6.3 系统报告(If the system reports) ........................................................................................ 107
4.6.4 'Online' 'Logout'....................................................................................................................... 108
4.6.5 ‘Online’ 'Download'........................................................................................................................ 108
4.6.6 'Online' 'Run'............................................................................................................................ 108
4.6.7 'Online' 'Stop'........................................................................................................................... 108
4.6.8 'Online' 'Reset' ......................................................................................................................... 108
4.6.9 'Online' 'Reset (cold)'............................................................................................................... 108
4.6.10 'Online' 'Reset (original)' .............................................................................................................. 109
4.6.11 'Online' 'Toggle Breakpoint'.......................................................................................................... 109
4.6.12 'Online' 'Breakpoint Dialog Box' .................................................................................................. 109
4.6.13 ‘Online’ 'Step over' ....................................................................................................................... 110
4.6.14 'Online' 'Step in' ............................................................................................................................ 110
4.6.15 ‘Online’ 'Single Cycle'.................................................................................................................. 110
4.6.16 'Online' 'Write values' ................................................................................................................... 110
4.6.17 ‘Online’ 'Force values' ...................................................................................................................111
4.6.18 'Online' 'Release force'.................................................................................................................. 112
4.6.19 'Online' 'Write/Force' Dialog'........................................................................................................ 113
4.6.20 'Online' 'Show Call Stack'............................................................................................................. 114
4.6.21 ‘Online’ 'Flow Control'................................................................................................................. 114
第 2 章 PROSYD 1131 概述
4.6.22 'Online' 'Simulation'...................................................................................................................... 114
4.6.23 'Online' 'Communication Parameters'........................................................................................... 115
4.6.24 网关系统规则(Principle of a gateway system) ..................................................................... 115
4.6.25 本地 PC 机上的通讯参数对话框 .............................................................................................. 115
4.6.26 设定网关服务器和通道 ............................................................................................................. 116
4.6.27 为本地网关服务器设定一个新通道 ......................................................................................... 117
4.6.28 在通讯参数对话框编辑参数时的技巧 ..................................................................................... 118
4.6.29 快速检测网关的错误连接 ......................................................................................................... 118
4.6.30 ‘Online’ 'Sourcecode download' ................................................................................................... 118
4.6.31 ‘Online’ 'Create bootproject'......................................................................................................... 119
4.6.32 'Online' 'Write file to controller' .............................................................................................. 119
4.6.33 ‘Online’ 'Load file from controller'............................................................................................... 119
4.7 日志(Log) ........................................................................................................................................... 119
4.7.1 ‘Window’ 'Log' ............................................................................................................................... 119
4.7.2 菜单日志(Menu Log) .............................................................................................................. 120
4.7.3 存储项目日志 ............................................................................................................................... 121
4.8 窗口设定.................................................................................................................................................. 121
4.8.1 ‘Window’ 'Tile Horizontal' ............................................................................................................. 121
4.8.2 ‘Window’ 'Tile Vertical' .................................................................................................................. 121
4.8.3 ‘Window’ 'Cascade' ........................................................................................................................ 121
4.8.4 ‘Window’ 'Arrange Symbols'.......................................................................................................... 122
4.8.5 ‘Window’ 'Close All'....................................................................................................................... 122
4.8.6 ‘Window’ 'Messages' ...................................................................................................................... 122
4.9 帮助.......................................................................................................................................................... 122
4.9.1 ‘Help’ 'Contents and Index' ............................................................................................................ 122
4.9.2 主帮助窗口 ................................................................................................................................... 123
4.9.3 索引窗口(Index Window) ....................................................................................................... 124
4.9.4 快速帮助(Context Sensitive Help) .......................................................................................... 125
5. 编辑器(Editors) ............................................................................................................................................ 125
5.1.1.1 打印范围 .......................................................................................................................... 125
5.1.1.2 注释..................................................................................................................................... 125
5.1.1.3 打开 POU(Zoom to POU) ............................................................................................. 126
5.1.1.4 打开实例 ............................................................................................................................. 126
5.2 声明编辑器.............................................................................................................................................. 126
5.2.1 声明部分....................................................................................................................................... 126
5.2.2 输入变量(Input Variable) ........................................................................................................ 127
5.2.3 输出变量(Output Variable) ........................................................................................................... 127
5.2.4 输入/输出变量(Input and Output Variables) ................................................................................ 127
5.2.5 局部变量(Local Variables) ........................................................................................................... 128
5.2.6 其它............................................................................................................................................... 128
5.2.7 常量(Constants),直接数值(Typed Literals) ..................................................................... 128
5.2.8 外部变量(External variables) .................................................................................................. 129
5.2.9 关键字(Keywords)................................................................................................................... 129
5.2.10 变量声明(Variables declaration) ........................................................................................... 129
第 2 章 PROSYD 1131 概述
5.2.11 AT 声明(AT Declaration) .................................................................................................... 130
5.2.12 ‘Insert’ 'Declarations keywords' ................................................................................................... 130
5.2.13 ‘Insert’ 'Type' ................................................................................................................................ 130
5.2.14 语法颜色(Syntax Coloring)................................................................................................... 131
5.2.15 快捷模式(Shortcut Mode) ..................................................................................................... 131
5.2.16 自动声明(Auto declaration) ................................................................................................ 131
5.2.17 声明编辑器中的行号 ............................................................................................................... 133
5.2.18 表格声明 ................................................................................................................................... 133
5.2.19 ‘Insert’ 'New Declaration' ............................................................................................................. 134
5.2.20 标记指令(Pragma instruction)............................................................................................. 134
5.2.21 在线模式下的声明编辑器 ....................................................................................................... 137
5.3 文本编辑器.............................................................................................................................................. 138
5.3.1.1 文本编辑器中的 'Insert''Operators' ................................................................................ 138
5.3.1.2 文本编辑器中的 'Insert''Operand' .................................................................................. 138
5.3.1.3 文本编辑器中的 'Insert''Function' .................................................................................... 138
5.3.1.4 文本编辑器中的 'Insert''Function Block' ....................................................................... 139
5.3.1.5 在文本编辑器中调用具有输出参数的 POU ................................................................ 139
5.3.1.6 在线模式下的文本编辑器 .............................................................................................. 139
5.3.1.7 ‘Extras’ 'Monitoring Options' .............................................................................................. 139
5.3.1.8 文本编辑器中的断点位置 ................................................................................................ 140
5.3.1.9 如何设置断点? ................................................................................................................ 140
5.3.1.10 删除断点 ........................................................................................................................ 141
5.3.1.11 断点处发生什么? .......................................................................................................... 141
5.3.1.12 文本编辑器中的行号 .................................................................................................... 141
5.3.2 IL 编辑器 ................................................................................................................................... 141
5.3.2.1 在线模式下的 IL ............................................................................................................ 142
5.3.3 ST 编辑器 .................................................................................................................................. 142
5.4 图形编辑器............................................................................................................................................ 143
5.4.1.1 缩放(Zoom) ................................................................................................................ 143
5.4.1.2 网络(Network) ................................................................................................................. 144
5.4.1.3 标签(Label)................................................................................................................. 144
5.4.1.4 网络注释,'Extras' 'Options' ........................................................................................... 144
5.4.1.5 'Insert' 'Network (after)' 或 'Insert' "Network (before)".................................................. 144
5.4.1.6 在线模式下的网络编辑器 .............................................................................................. 144
5.4.2 FBD 编辑器 ............................................................................................................................... 145
5.4.2.1 FBD 中的指针位置 ........................................................................................................ 145
5.4.2.2 在 FBD 中如何设定指针 .............................................................................................. 146
5.4.2.3 在 FBD 中的 'Insert' 'Assign' ........................................................................................... 147
5.4.2.4 在 FBD 中的 'Insert' 'Jump'.............................................................................................. 147
5.4.2.5 在 FBD 中的 'Insert' 'Return'............................................................................................ 147
5.4.2.6 在 FBD 中的 'Insert' 'Box'................................................................................................ 147
5.4.2.7'Insert' 'Input'......................................................................................................................... 148
5.4.2.8'Insert' 'Output '..................................................................................................................... 148
5.4.2.9'Extras' 'Negate'..................................................................................................................... 149
第 2 章 PROSYD 1131 概述
5.4.2.10'Extras' 'Set/Reset'............................................................................................................... 149
5.4.2.11 FBD 中的剪切,复制,粘贴和删除........................................................................... 149
5.4.2.12 在线模式下的 FBD ...................................................................................................... 150
5.4.3 梯形图编辑器 ............................................................................................................................... 151
5.4.3.1 LD 编辑器中的指针位置............................................................................................... 151
5.4.3.2 LD 中的 'Insert' 'Contact' ............................................................................................... 152
5.4.3.3 ‘Insert’ 'Parallel Contact' ..................................................................................................... 152
5.4.3.4 LD 中的 'Insert' 'Function Block' ................................................................................... 152
5.4.3.5 LD 中的 'Insert''Coil'...................................................................................................... 153
5.4.3.6 具有 EN 输入端的 POU............................................................................................... 153
5.4.3.7 LD 中的 'Insert' 'Box with EN '...................................................................................... 153
5.4.3.8 ‘Insert’ 'Function Block with EN' ........................................................................................ 153
5.4.3.9 ‘Insert’ 'Function with EN'................................................................................................... 154
5.4.3.10 LD 中的 'Insert' 'Insert at blocks' ................................................................................. 154
5.4.3.11 LD 中的 'Insert' 'Jump' ................................................................................................. 154
5.4.3.12 LD 中的 'Insert' 'Return'............................................................................................... 154
5.4.3.13 LD 中的 'Extras' 'Paste after' ........................................................................................ 154
5.4.3.14 LD 中的 'Extras' 'Paste below'...................................................................................... 154
5.4.3.15 LD 中的 'Extras' 'Paste above'...................................................................................... 154
5.4.3.16 LD 中的 'Extras' 'Negate' ............................................................................................. 155
5.4.3.17 LD 中的 'Extras' 'Set/Reset'.......................................................................................... 155
5.4.3.18 在线模式下的 LD......................................................................................................... 155
5.4.4 SFC 编辑器................................................................................................................................ 155
5.4.4.1 SFC 中的标记的块 ......................................................................................................... 156
5.4.4.2 ‘Insert’ 'Step Transition (before)' ......................................................................................... 156
5.4.4.3 ‘Insert’ 'Step Transition (after)' ............................................................................................ 157
5.4.4.4 ‘Insert’ 'Alternative Branch (right)' ..................................................................................... 157
5.4.4.5 ‘Insert’ 'Alternative Branch (left)'........................................................................................ 157
5.4.4.6 ‘Insert’ "Parallel Branch (right)" ......................................................................................... 157
5.4.4.7 ‘Insert’ 'Parallel Branch (left)' ............................................................................................. 157
5.4.4.8 ‘Insert’ 'Jump' ...................................................................................................................... 157
5.4.4.9 ‘Insert’ 'Transition-Jump'..................................................................................................... 158
5.4.4.10 ‘Insert’ 'Add Entry-Action' ................................................................................................ 158
5.4.4.11 ‘Insert’ 'Add Exit-Action'................................................................................................... 158
5.4.4.12 ‘Extras’ 'Paste Parallel Branch (right)'............................................................................... 158
5.4.4.13 ‘Extras’ 'Add label to parallel branch'................................................................................ 158
5.4.4.14 删除标签 ........................................................................................................................ 159
5.4.4.15 ‘Extras’ 'Paste after' ........................................................................................................... 159
5.4.4.16 ‘Extras’ 'Zoom Action/Transition'...................................................................................... 159
5.4.4.17 ‘Extras’ "Clear Action/Transition"..................................................................................... 159
5.4.4.18 ‘Extras’ 'Step Attributes' .................................................................................................... 159
5.4.4.19 ‘Extras’ 'Time Overview' ................................................................................................... 160
5.4.4.20 ‘Extras’ 'Options' ............................................................................................................... 161
5.4.4.21 ‘Extras’ 'Associate Action'................................................................................................. 161
第 2 章 PROSYD 1131 概述
5.4.4.22 ‘Extras’ 'Use IEC-Steps' .................................................................................................... 161
5.4.4.23 在线模式下的 SFC ....................................................................................................... 161
5.4.5 CFC 编程器 ............................................................................................................................... 164
5.4.5.1 CFC 中的指针位置......................................................................................................... 165
5.4.5.2 CFC 中 'Insert' 'Box'....................................................................................................... 166
5.4.5.3 CFC 中 'Insert' 'Input' ..................................................................................................... 166
5.4.5.4 CFC 中 'Insert' 'Output' .................................................................................................. 166
5.4.5.5 CFC 中 'Insert' 'Jump'................................................................................................... 166
5.4.5.6 CFC 中 'Insert' 'Label' .................................................................................................... 166
5.4.5.7 CFC 中 'Insert' 'Return'................................................................................................. 167
5.4.5.8 CFC 中 'Insert' 'Comment'.............................................................................................. 167
5.4.5.9 CFC 中 'Insert' 'Input of box'.......................................................................................... 167
5.4.5.10 CFC 中 'Insert' 'In-Pin' , 'Insert' 'Out-Pin' ..................................................................... 167
5.4.5.11 CFC 中 'Extras' 'Negate' ............................................................................................... 167
5.4.5.12 CFC 中 'Extras' 'Set/Reset' ........................................................................................... 167
5.4.5.13 CFC 中 'Extras' 'EN/ENO'............................................................................................ 168
5.4.5.14 CFC 中 'Extras' 'Properties...' ....................................................................................... 169
5.4.5.15 选择 CFC 元素 ............................................................................................................ 169
5.4.5.16 移动 CFC 元素 ............................................................................................................ 169
5.4.5.17 复制 CFC 元素 ............................................................................................................ 169
5.4.5.18 创建连接 ........................................................................................................................ 170
5.4.5.19 删除连接 ........................................................................................................................ 170
5.4.5.20 改变连接 ........................................................................................................................ 170
5.4.5.21 ‘Extras’ 'Connection marker' ............................................................................................. 170
5.4.5.22 插入 inputs/outputs "on the fly" .................................................................................... 171
5.4.5.23 执行顺序 ........................................................................................................................ 171
5.4.5.24 ‘Extras’ 'Order' 'Display'.................................................................................................... 171
5.4.5.25 ‘Extras’ 'Order' 'Order topologically' ................................................................................. 172
5.4.5.26 ‘Extras’ 'Order' 'One forwards' .......................................................................................... 173
5.4.5.27 ‘Extras’ 'Order' 'One backwards'........................................................................................ 173
5.4.5.28 ‘Extras’ 'Order' 'To the beginning' ..................................................................................... 173
5.4.5.29 ‘Extras’ 'Order' 'To the end' ............................................................................................... 173
5.4.5.30 ‘Extras’ 'Order' 'Order everything according to data flow''................................................ 173
5.4.5.31 ‘Extras’ 'Create macro''...................................................................................................... 174
5.4.5.32 ‘Extras’ 'Jump into Macro'................................................................................................. 175
5.4.5.33 ‘Extras’ 'Expand macro'..................................................................................................... 176
5.4.5.35 CFC 中的反馈路径....................................................................................................... 176
5.4.5.36 在线模式下的 CFC....................................................................................................... 176
6. 资源概述............................................................................................................................................................ 178
6.1 全局变量.................................................................................................................................................. 178
6.1.1 编辑全局变量 ............................................................................................................................... 178
6.1.2 变量表........................................................................................................................................... 178
6.1.3 全局变量....................................................................................................................................... 178
6.1.3.1 创建全局变量表 .............................................................................................................. 179
第 2 章 PROSYD 1131 概述
6.1.3.2 编辑全局变量表 .............................................................................................................. 180
6.1.3.3 编辑其它全局变量表 ...................................................................................................... 180
6.1.4 全局常量....................................................................................................................................... 181
6.2 变量配置.................................................................................................................................................. 181
6.2.1 'Insert' 'All Instance Paths' .............................................................................................................. 182
6.2.2 结构文档....................................................................................................................................... 182
6.2.2.1 结构文档 .......................................................................................................................... 182
6.2.2.2 'Extras' 'Make Docuframe File'............................................................................................ 183
6.2.2.3 ‘Extras’ 'Link Docu File'...................................................................................................... 183
6.3 PLC 浏览器........................................................................................................................................... 183
6.4 PLC 配置............................................................................................................................................... 183
6.4.1 PLC 选择.................................................................................................................................... 183
6.5 任务配置.................................................................................................................................................. 183
6.5.1 哪个任务被处理? ......................................................................................................................... 184
6.5.2 使用任务配置 ............................................................................................................................... 184
6.5.3 'Insert' 'Insert Task' 或 'Insert' 'Append Task'............................................................................. 184
6.5.4 'Insert' 'Insert Program Call'或'Insert' 'Append Program Call'........................................................ 185
6.5.5 'Extras' 'Edit Entry' ......................................................................................................................... 185
6.5.6 ‘Extras’ 'Set Debug Task'................................................................................................................ 186
6.6 采样轨迹.................................................................................................................................................. 186
6.6.1 ‘Extras’ 'Trace Configuration'......................................................................................................... 186
6.6.2 ‘Extra’ 'Start Trace' ......................................................................................................................... 187
6.6.3 'Extra' 'Read Trace' ......................................................................................................................... 187
6.6.4 'Extra' 'Auto Read' .......................................................................................................................... 187
6.6.5 'Extra' 'Stop Trace' .......................................................................................................................... 188
6.6.6 显示变量的选择 ......................................................................................................................... 188
6.6.7 采样轨迹的显示 ........................................................................................................................... 188
6.6.8 'Extras' 'Cursor Mode'.................................................................................................................. 188
6.6.9 'Extras' 'Multi Channel'................................................................................................................... 189
6.6.10 ‘Extras’ 'Show grid' ...................................................................................................................... 189
6.6.11 ‘Extras’ 'Y Scaling' ....................................................................................................................... 189
6.6.12 ‘Extras’ 'Stretch'............................................................................................................................ 189
6.6.13 ‘Extras’ 'Compress' ....................................................................................................................... 189
6.6.14 ‘Extras’ 'Save Trace' ..................................................................................................................... 190
6.6.15 'Extras' 'Load Trace'...................................................................................................................... 190
6.6.16 ‘Extras’ 'Trace in ASCII-file' ........................................................................................................ 190
6.7 监视及配方管理器(Watch and Receipt Manager)........................................................................... 190
6.7.1 监视及配方管理器 ................................................................................................................. 190
6.7.2 离线模式下的监视及配方管理器 ............................................................................................... 191
6.7.3 'Insert' 'New Watch List' .......................................................................................................... 191
6.7.4 'Extras' 'Rename Watch List'.................................................................................................... 191
6.7.5 'Extras' 'Save Watch List'......................................................................................................... 191
6.7.6 'Extras' 'Load Watch List' ............................................................................................................... 192
6.7.7 在线模式下的监视及配方管理器 ......................................................................................... 192
第 2 章 PROSYD 1131 概述
6.7.8 'Extra' 'Monitoring Active'....................................................................................................... 192
6.7.9 'Extras' 'Write Receipt'............................................................................................................. 193
6.7.10 ‘Extras’ 'Read Receipt'.................................................................................................................. 193
6.7.11 强制数值 ..................................................................................................................................... 193
7 库管理器(Library Manager) ............................................................................................................................. 193
7.1 使用库管理器........................................................................................................................................ 194
7.2 标准库(Standard Library)................................................................................................................. 194
7.3 用户自定义库........................................................................................................................................ 194
7.4 'Insert' 'Additional Library'........................................................................................................................ 195
7.5 删除库(Remove Library).................................................................................................................... 195
8 可视化组件....................................................................................................................................................... 195
8.1 可视化组件.............................................................................................................................................. 195
8.2 创建可视化组件 ............................................................................................................................. 196
8.2.1 可视化组件单元,插入 ............................................................................................................... 196
8.2.1.1 可视化组件单元,插入 .................................................................................................... 196
8.2.1.2 ‘Insert’ 'Rectangle' ............................................................................................................... 196
8.2.1.3 'Insert' 'Rounded Rectangle'..................................................................................... 196
8.2.1.4 'Insert' 'Ellipse' ......................................................................................................... 196
8.2.1.5 'Insert' 'Polygon'....................................................................................................... 196
8.2.1.6 'Insert' 'Line'............................................................................................................. 197
8.2.1.7 'Insert' 'Curve' .......................................................................................................... 197
8.2.1.8 'Insert' 'Bitmap' ........................................................................................................ 197
8.2.1.9 'Insert' 'Visualization' ............................................................................................... 197
8.2.1.10 ‘Insert’ 'Button' .................................................................................................................. 197
8.2.2 使用可视化单元 ..................................................................................................................... 197
8.2.2.1 选择可视化单元 ................................................................................................................ 197
8.2.2.2 修改可视化组件 ................................................................................................................ 197
8.2.2.3 拖动可视化组件单元 ........................................................................................................ 198
8.2.2.4 复制可视化单元 ................................................................................................................ 198
8.2.2.5 改变选择及插入模式 ........................................................................................................ 198
8.2.2.6 可视化组件中的状态栏 ......................................................................................... 198
8.2.3 可视化组件单元,配置 ............................................................................................................... 198
8.2.3.1 ‘Extras’ 'Configure'.............................................................................................................. 198
8.2.3.2 占位符 ................................................................................................................................ 199
8.2.3.3 ‘Extras’ 'Placeholder list' ..................................................................................................... 199
8.2.3.4 形状(Shape) .................................................................................................................. 200
8.2.3.5 文本.................................................................................................................................... 200
8.2.3.6 线宽度 ..................................................................................................................... 201
8.2.3.7 颜色.................................................................................................................................... 202
8.2.3.8 绝对位移(Motion absolute) .................................................................................... 202
8.2.3.9 相对位移(Motion relative) ................................................................................ 203
8.2.3.10 变量.................................................................................................................................. 204
8.2.3.11 输入(Input).................................................................................................................. 204
8.2.3.12 工具提示(ToolTip) ..................................................................................................... 205
第 2 章 PROSYD 1131 概述
8.2.3.13 位图(Bitmap) .............................................................................................................. 205
8.2.3.14 可视化组件 ...................................................................................................................... 206
8.2.4 其它可视化组件单元功能 ........................................................................................................... 207
8.2.4.1 'Extras' 'Send to Front' ............................................................................................. 207
8.2.4.2 'Extras' 'Send to Back'.............................................................................................. 207
8.2.4.3 'Extras' 'Select Background Bitmap' ........................................................................ 207
8.2.4.4 'Extras' 'Clear Background Bitmap' ...................................................................... 208
8.2.4.5 'Extras' 'Align'.......................................................................................................... 208
8.2.4.6 'Extras' 'Select All' ................................................................................................... 208
8.2.4.7 'Extras' 'Select Mode'............................................................................................... 208
8.2.4.8 'Extras' 'Element list'................................................................................................ 208
8.2.4.9 'Extras' 'Settings' ...................................................................................................... 209
8.2.4.10 在线模式下的键盘操作 ................................................................................................... 211
8.2.4.11 在线模式下的 'File' 'Print' ............................................................................................ 212
8.2.4.12 库文件中的可视化组件 .................................................................................................. 212
第 2 章 PROSYD 1131 概述

TP(延时脉冲定时器)

1
2

3
4

5
6

7
8
9
10
11
12
第 2 章 PROSYD 1131 概述

2 PROSYD 1131 概述
2.1 PROSYD 1131 软件简介
PROSYD 1131 是一套完整的PLC程序开发环境,(PROSYD 1131代表Programming
and System Diagnose)。
PROSYD 1131 为编程者提供了功能强大的IEC编程语言,编辑器及调试工具类似于高
级编程语言的开发环境(如:Visual C++),PROSYD 1131为PLC应用程序开发人员提供简
单易学且功能强大的开发环境。

2.2 PROSYD 1131 功能概述


1 2.2.1 项目结构
2
一个项目的所有相关信息存储于用户定义的项目文件中。 在一个新项目中,第一个 POU
3 (程序组织单元)被自动命名为 PLC_PRG ,程序的编写从此处开始(类似于 C 程序中的主函
4 数), 其它的 POU 也从此处进行访问(程序、功能块、函数)。
一旦定义了任务配置,就不再需要建立名为 PLC_PRG 的程序(详见关于任务配置的章
5 节)。
6 一个项目中包含多种不同的对象如:POU,数据类型、显示元件(可视化组件)和程序资
源等。
7 对象管理器包含有一个项目中所有对象的列表。
8
9
2.2.2 创建项目
10 首先要对PLC进行配置,以确保项目中所用到的PLC地址的准确性。
11 然后根据需要创建 POU。
选用需要的编程语言对 POU 进行编程。
12 程序设计工作完成后便可对项目进行编译并修改程序中可能存在的错误。

2.2.3 测试项目
项目中的错误完全被排除以后,启动仿真功能。连接并将项目下载至仿真PLC中,此时,
你便处于在线模式。
打开PLC配置窗口检测项目是否正确执行。测试方法可通过手动改变输入变量的值,然后
观察输出值是否与期望的一致,也可通过在POU中定义的本地变量观察数值的变化情况。在
Watch and Receipt Manager中配置需要检测的数据记录。

2.2.4 调试
当项目中存在错误时可采用设置断点的方法帮助排除。程序运行至断点处停止,检查此时
各个变量的当前值,了解程序的运行情况,继续逐步运行程序,检查程序中的逻辑关系是否正
确。.

2.2.5 其它在线工具
更多的调试功能可供使用:
第 2 章 PROSYD 1131 概述
z 程序变量及输入输出通道可手动设置数值。
z 通过流程控制(flow control)检查哪个程序线程在运行。
z 日志文件按时间顺序记录联机过程中的各种用户操作和内部过程。
z 采样轨迹用于跟踪和显示变量在一定的时间段内数据的实际变化轨迹。
z 使用PLC Broswer工具可以从 PLC 中提取有关的状态信息。
z 当设计完成项目并测试通过后即可被装载至硬件系统中做进一步调试,所有仿真状态下的
在线功能同样可以使用。

2.2.6 辅助功能
整个项目可以归档或导出为文本文件。

2.2.7 总结
1
2 PROSYD 1131 是一套功能完备的 PLC 程序开发工具,可大量减少工程项目所需的开
发设计时间。
3
2.3 项目单元
4

5 2.3.1 项目
6
一个项目包含有 PLC 程序的所有对象。项目的相关信息存储于用户命名的文件中。一个
7 项目中可以包含如下对象:
8 POU(程序组织单元),数据类型、可视化组件,程序资源和功能库。

9 2.3.2 POU (程序组织单元)


10
函数、功能块和程序均为 POU,它们都可以被调用。
11 每个 POU 均包含变量声明部分和程序指令部分(主体部分),程序指令部分可采用 IEC
12 编程语言IL、ST、SFC、FBD、LD或CFC中的任何一种进行编写。
PROSYD 1131 支持所有 IEC 标准的POU,如需在项目中使用这些 POU,必须将库文
件 standard.lib导入到你的项目中。
在一个 POU 中可以调用另一个 POU,但不允许递归调用。

2.3.3 函数(FUNCTION)
函数是一种类型的 POU ,函数被调用时返回一个数据元素(可含有多个子元素,如数组
或结构体)。函数在文本程序设计语言(如 ST)中可以作为表达式中的一个运算数。
声明一个函数时必须为其指定相应的数据类型,即在函数名的后面输入一个冒号并注明数
据类型。

正确格式如下:
FUNCTION Fct: INT
此外,必须为函数分配一个输出结果,也就是说函数名即为输出变量。
函数声明以关键字 FUNCTIUON 开始。
例如:在采用IL语言编写的函数中,接收三个输入变量,返回值为前两个变量的乘积除以
第三个变量。
第 2 章 PROSYD 1131 概述

在 ST 中,函数可以作为表达式中一个运算数而直接被调用。
函数不具有任何内部条件,当使用相同的输入参数多次调用同一个函数时,该函数总是返
回相同的数据。
在 SFC 中,函数的调用只能应用于某一步或某一转换中。 ST、IL为文本语言
在 IL 中调用:
LD 7
1 Fct 2,4
2 ST Result

3 在 ST 中调用:
4 Result := Fct(7, 2, 4);

5 在 FBD 中调用:
6

7
8
9
10
11 可以在项目中定义名为 CheckBounds 的函数用于检测项目中的范围溢出。该函数名被
定义且只使用这个标识符。在后面的章节中将对该函数进行更详细地描述,也可参阅在线帮助。
12
函数 CheckDivByte、CheckDivWord、CheckDivDWord 和 CheckDivReal 用于
检查除法运算中的除数值,避免因除数为零引起的错误。
函数 CheckRangeSigned 和 CheckRangeUnsigned 用于防止 Subrange 类型变量数
值的溢出。
以上所有用于检测的函数均已预留。在后面的章节中将对这些函数进行更详细地描述,也
可参阅在线帮助。
第 2 章 PROSYD 1131 概述

2.3.4 功能块
功能块作为一个 POU,被调用时输出一个或多个数据。与函数(Function)不同,功能块没
有返回值。
关键字 FUNCTION_BLOCK 用于声明功能块。
功能块以调用其实例(Instance)的方式执行。
功能块示例(IL):

上例中的功能块有两个输入变量和两个输出变量。一个输出变量为两个输入变量的乘积,
另一个输出变量为两个输入变量的大小比较结果。

2.3.5 功能块实例

在程序中需要创建所调用的功能块的实例
每个实例只处理其自身的标识符(实例名)和包含输入输出变量及内部变量的数据结构。
和变量一样,实例可以声明为局部实例或全局实例,实例标识符的类型为功能块的名字。
功能块 FUB 的名为 INSTANCE 的实例可写为:
INSTANCE: FUB;

功能块通常通过其实例调用。
从功能块实例外部只能操作其输入输出参数,不能操作内部变量。
例如:访问一个输入变量:
功能块 FB 包含一个名为 in1 的输入变量,类型为 INT。

PROGRAM prog
VAR
inst1:fb;
第 2 章 PROSYD 1131 概述
END_VAR
LD 17
ST inst1.in1
CAL inst1
END_PROGRAM

功能块和程序的声明部分可以包含实例的声明,函数中不允许实例的声明。
除非将其声明为全局类型,否则功能块实例只能在所声明的 POU 中使用。
功能块实例名称可以用作函数或功能块的输入参数。
提示:
功能块的所有变量的数据在被调用后保留直至下一次调用。所以,以同样的参数
多次调用功能块,功能块不一定会输出相同的数据。

提示:
只要功能块变量中有一个是保持型变量,整个实例将保存在保持区中。

2.3.6 功能块的调用
程序组织单元
可以在其它的POU中访问功能块的输入/输出变量。首先需要建立功能块实例,然后按如
1
下的语法格式设置需要访问的变量:
2 <实例名>.<变量名>
3 如果需要在调用功能块时设定输入参数,在文本语言 IL、ST中,可以在功能块实例名后
的括号中为参数赋值。(赋值操作用“:= ”符号,类似于在变量声明部分中对变量进行初始化)
4 注意! 请注意,功能块的输入输出变量 (VAR_IN_OUT) 是被当作指针来传递的,所以在调用功
5 能块时,不能将常量分配给 VAR_IN_OUT ,并且不允许从功能块外部对该变量进行读写操作。
VAR
6
inst: fubo;
7 var: int;
END_VAR
8
var1:=2; 赋值语句
9
inst(instout1:=var1^);
10
11 下列情况是不允许的:inst(instout1:=2); 或 inst.inout1:=2;
例如:调用功能块 FUB:
12 乘积保存在变量 ERG 中,比较的结果保存在变量QUAD 中,在程序中声明名为INSTANCE
的功能块 FUB 的实例。
在IL编程语言中调用功能块实例:
第 2 章 PROSYD 1131 概述

在ST编程语言调用功能块实例(声明部分与在IL语言中一样):

在FBD编程语言中调用功能块实例(声明部分与在IL语言中一样):

在SFC编程语言中,只能在步中调用功能块。
第 2 章 PROSYD 1131 概述

2.3.7 程序
程序作为一种 POU,在执行过程中输出一系列数据。在一个项目中,程序属于全局元素。所有数据
在程序结束后一直保持直到下一次程序执行。
程序示例:

1
2
程序可以被调用,但不能在函数中被调用。与功能块不同,程序的调用不通过实例。
3 如果一个 POU 调用一个程序并且程序中的值被改变,那么这个改变将一直保持至下次此
程序被调用,即使这个程序被其他 POU 调用。
4
功能块调用方式不同于程序,仅仅为功能块指定的实例中的数据发生变化。
5 只有当同一个实例被调用时,功能块实例数据才发生变化。
6 程序的声明由关键字 PROGRAM 开始,以 END_PROGRAM 结束。
在 IL 中调用程序:
7 CAL PRGExample
8 LD PRGexample.PAR
9 ST ERG

10 在 ST 中:
11 PRGExample;
12 Erg := PRGexample.PAR;

在 FBD 中:

例如:在PLC_PRG 中调用程序:

LD 0
ST PRGexample.PAR (*缺省设置 PAR 为 0*)
CAL IL call (*ERG 在 IL 中调用结果为 1*)
CAL ST call (*ERG 在 ST 中调用结果为 2*)
CAL FBD call (*ERG在 FBD 中调用结果为 3*)

如果程序 PRGexample 中的变量 PAR 被主程序初始化为 0 ,然后程序按以上的顺序逐


一调用,则 ERG 的结果为 1,2 和 3。如果调用的顺序改变,则结果也会相应改变。
第 2 章 PROSYD 1131 概述

2.3.8 PLC_PRG
PLC_PRG 是一个预定义的特殊 POU。每个项目都必须包含这个特殊程序。这个 POU 在
每个控制周期被调用一次。
一个新项目建立后,第一次使用'Project'、 'Object Add'命令时,在 POU 对话框中显
示以 PLC_PRG 命名的一个缺省程序类型POU名。不要更改这个缺省设置。
如果已定义了任务,则项目中可以不含有以 PLC_PRG 命名的程序,执行顺序取决于任务
的分配。

注意:请勿删除或重命名POU PLC_PRG (假定当前未使用任务配置)!在单任务程序


中PLC_PRG 作为主程序。
2.3.9 动作(Action)
动作可以在功能块和程序中定义。动作代表由另一种语言编写的程序的进一步执行,。每
个动作都有一个名称。
动作使用其所属的功能块或程序中的数据,使用相同的输入/输出变量和局部变量。
例如:功能块中的动作。
例子中,所调用的功能块 Counter 会根据输入变量“in”的变化,其输出变量“out”的值会
增大或减小。执行功能块的动作复位(Reset)可将输出变量复位为零。两种情况下均可对变
量“out”进行写操作。
动作的调用采用<程序名>.<动作名> 或 <实例名>.<动作名>的格式。如果要求某功能
块在内部调用其自身的动作, 则只需在文本编辑器或图形模式下直接使用动作名而不需要实
例名。
举例说明上述调用动作的方法如下:
第 2 章 PROSYD 1131 概述

提示:动作在顺序功能图的程序块中具有重要的作用,参见顺序功能图 – SFC 部
分。

IEC标准不能识别除顺序功能图中的动作之外的动作。

各种声明方式举例如下:

PROGRAM PLC_PRG:
VAR
Inst: Counter;
END_VAR

在 IL 中调用:
CAL Inst.Reset (In:=FALSE)
LD Inst.out
ST ERG

在 ST中调用:
1 Inst.Reset (In:=FALSE);
2 Erg:=Inst.out;

3
4 在 FBD 中调用:

5
6

7
8 2.3.10 程序资源
9
资源用于配置和管理项目以及对变量数值进行跟踪采样。
10
2.3.11 库文件
11
12 一个项目中可包含多个库文件,这些库文件中的 POU、数据类型和全局变量可以象用户
自定义的变量一样被调用。名为 standard.lib 和 util.lib 的库文件是程序中的标准部分,可根
据需要使用。
参见库管理器一章。

2.3.12 数据类型
除了标准数据类型以外,用户还可以自定义数据类型。可创建结构体、枚举和参考体。
参见数据类型一章。
第 2 章 PROSYD 1131 概述

2.3.13 可视化工具
PROSYD 1131 提供可视化工具用于显示项目变量。可以用它在离线方式下编辑图形界
面,在线方式下图形元素的形状、颜色和字符内容等均可根据指定变量数值的变化而变化。
参见可视化组件一章。

2.4 编程语言
2.4.1 语句表 (IL)
语句表程序(IL)包含了一系列的指令。每条指令占一行,包含一个运算符,根据运算功能
的不同还会包含一个或多个运算数,运算数之间用逗号分隔。
指令之前会有一个识别标志(标签)和一个冒号(:)。
注释文字放在一行的最后。指令行之间可以插入空行。
例如:
LD 17
ST lint (* comment *)
GE 5
JMPC next
LD idword
EQ istruct.sdword
STN test
next:

2.4.1.1 IL 语言的修饰符和运算符

IL 语言中可使用下列运算符和修饰符。
修饰符:
C: 用于 JMP、CAL、RET: 如果该指令前的表达式结果为“真”,则执行该指令。
N: 用于 JMPC、CALC、RETC: 如果该指令前的表达式结果为“假”,则执行该指令。
N: 其它运算符: 用于运算数(布尔量)取反。(累加器除外)
下列表格中列出 IL 语言中所有的运算符及可用的修饰符以及相关的含义:

运算符 修饰符 含义
LD N 将运算数写入缓存
ST N 将运算结果写入指定运算数
S 置位布尔运算数
R 复位布尔运算数
AND N,( 位逻辑“与”运算
OR N,( 位逻辑“或”运算
XOR N,( 位逻辑“异或”运算
第 2 章 PROSYD 1131 概述

运算符 修饰符 含义
ADD ( “加”运算
SUB ( “减”运算
MUL ( “乘”运算
DIV ( “除”运算
GT ( >
GE ( >=
1
EQ ( =
2
NE ( <>
3 LE ( <=
4 LT ( <
5 JMP C,N 跳转到“label”

6 CAL C,N 调用程序或功能块


RET C,N 调用返回
7
8 ) 右括号

9
从附录中可以查看所有 IEC 运算符。
10 带有修饰符的 IL 程序实例:
11 LD TRUE (*将“TRUE”存入缓存*)
12 ANDN BOOL1 (*“BOOL1”取反与“TRUE”做与运算*)
JMPC mark (*如果结果为“TRUE”,跳转到“mark”*)
LDN BOOL2 (*“BOOL2”取反*)
ST ERG (存入变量“ERG”中*)
label:
LD BOOL2 (*取“BOOL2”)
ST ERG (*存入变量“ERG”中*)

IL 语言允许在运算符后面跟有圆括弧,圆括弧中的值被当作运算数来处理。
例如:
LD 2
MUL 2
ADD 3
ST ERG

在这里 ERG 的值为 7。然而,如果取圆括弧中的值:


LD 2
MUL (2 ADD 3)
ST ERG
第 2 章 PROSYD 1131 概述
在这里 ERG 的值则为 10,运算符 MUL 只有当程序进行到“)”才继续执行,这时乘数为5。

2.4.2 结构化文本语言 (ST)


结构化文本语言包含一系列类似高级语言的语句。程序中可执行 (“IF..THEN..ELSE”) 条件语句
或(“WHILE..DO”) 循环语句。
例如:
IF value < 7 THEN
WHILE value < 8 DO
value:=value+1;
END_WHILE;
END_IF;

2.4.2.1 表达式

表达式是一种执行运算后返回结果的语句。
表达式由运算符和运算数组成。运算数可以是常数,变量,函数调用或另一个表达式。

2.4.2.2 表达式计算

表达式要根据已确定的运算规则进行计算,优先级高的运算符先运算,优先级低的运算符
后运算。
优先级相同的运算符按从左至右的顺序进行运算。
下表按优先级顺序列出 ST 运算符:

运算符 符号 优先级
括号 (…) 最高
函数调用 函数名(参数列表)
指数运算 EXPT
取负数 -
取反 NOT
乘法 *
除法 /
求余数 MOD
加法 +
减法 -
比较 <, >, <=, >=
等于 =
不等于 <>
逻辑与 AND
逻辑异或 XOR
逻辑或 OR 最低
第 2 章 PROSYD 1131 概述

以下为 ST 语句表及实例:
语句 示例
赋值 A:=B; CV := CV+1;C:=SIN(X);
功能块调用及功能块 CMD_TMR(IN := %IX5, PT := 300);
输出 A:=CMD_TMR.Q
RETURN RETURN;
IF D:=B*B;
IF D<0.0 THEN
C:=A;
ELSIF D=0.0 THEN
C:=B;
ELSE
C:=D;
1
END_IF;
2 CASE INT1 OF
CASE
3 1:BOOL1 := TRUE;
2:BOOL2 := TRUE;
4 ELSE
BOOL1 := FALSE;
5 BOOL2 := FALSE;
6 END_CASE;
FOR J:=101;
7 FOR I:=1 TO 100 BY 2 DO
IF ARR[I] = 70 THEN
8 J:=I;
9 EXIT;
END_IF;
10 END_FOR;
J:=1;
11
WHILE J<= 100 AND ARR[J] <> 70
12 WHILE DO
J:=J+2;
END_WHILE;
J:=-1;
REPEAT
REPEAT J:=J+2;
UNTIL J= 101 OR ARR[J] = 70
END_REPEAT;
EXIT EXIT;
空指令 ;

2.4.2.3 赋值语句

赋值语句(:=)用于将右边的数值赋值给左边的运算数(变量、地址)。
例如:
Var1 := Var2 * 10;
第 2 章 PROSYD 1131 概述
变量Var2 的十倍数值被赋值给变量Var1。

2.4.2.4 在ST中调用功能块。

在 ST 中调用功能块,需要功能块的实例名,然后在圆括号中给参数赋值。通过下面的例
子可以看到,调用定时器并给参数 IN 和 PT赋值,然后将结果变量 Q 的值赋给变量 A。
同 IL 一样,结果变量由功能块名,点号和变量名表示。
CMD_TMR(IN := %IX5, PT := 300);
A:=CMD_TMR.Q

2.4.2.5 RETURN 语句

RETURN 语句用于当条件满足时离开一个 POU。

2.4.2.6 IF 语句

IF 语句用于检查某个执行条件,并根据具体条件执行相应的指令。
语法结构:
IF <Boolean_表达式1> THEN
<IF_语句>
{ELSIF <Boolean_表达式2> THEN
<ELSIF_语句1>

ELSIF <Boolean_表达式n> THEN


<ELSIF_语句 n-1>
ELSE
<ELSE_语句>}
END_IF;

花括号 {} 中的部分为可选项。
如果 <Boolean_表达式1> 返回 TRUE,则只有 <IF_语句> 被执行。
否则从 <Boolean_表达式2> 开始的逻辑表达式将被逐一检测,直到某个表达式返回
TRUE,则此逻辑表达式之后到下一个ELSE 或 ELSIF 之前的语句被执行。
如果没有任何一个逻辑表达式返回 TRUE,则 <ELSE_语句> 被执行。
例子:
IF temp<17
THEN heating_on := TRUE;
ELSE heating_on := FALSE;
END_IF;
程序中当温度降至17度以下时加热器被打开,否则保持关闭状态。
第 2 章 PROSYD 1131 概述

2.4.2.7 CASE 语句

CASE 语句可以根据同一个条件变量的数值变化而去执行多个不同的程序段。
语法结构:
CASE <变量1> OF
<变量值1>:<程序1>
<变量值2>:<程序2>
<变量值3,变量值4,变量值5>::<程序3>
<变量值6 .. 变量值10>:<程序4>
...
<变量值n>:<程序n>
ELSE <ELSE 程序>
END_CASE;
1
CASE 语句按以下方式执行:
2 ·如果 <变量1> 的数据值为 <变量值i> , 则 <程序i> 中的语句被执行。
3 ·如果 <变量1> 不等于所列的任何值,则 <ELSE 程序> 中的语句被执行。
·如果 <变量1> 在等于多个不同的值的条件下而执行同一程序段时,则需将变量值逐一
4 写明并用逗号分开。
5 ·如果条件变量的值在某一数值范围内执行相同的程序段时,则需将条件变量的下限值和上
限值分别给出并用逗号分开。
6

7 例如:
8 CASE INT1 OF
1,5: BOOL1 := TRUE;
9
BOOL3 := FALSE;
10 2: BOOL2 := FALSE;
11 BOOL3 := TRUE;
10..20: BOOL1 := TRUE;
12
BOOL3:= TRUE;
ELSE
BOOL1 := NOT BOOL1;
BOOL2 := BOOL1 OR BOOL2;
END_CASE;

2.4.2.8 FOR 循环语句

FOR 循环语句用于编写可重复执行的程序。
语法结构:
INT_Var :INT;
FOR <整形变量> := <开始值> TO <结束值> {BY <步长>} DO
<程序>
第 2 章 PROSYD 1131 概述
END_FOR;
花括号 {} 中的部分为可选项。
只要计数值 <整形变量> 不大于 <结束值> 则 <程序> 会被连续重复执行。<程序>每
次被执行前都会进行比较,如果 <开始值> 大于 <结束值>,<程序>不再被执行。
当 <程序> 执行后,<整形变量> 会按 <步长>增加。步长可以设为任意整数,缺省值
为 1。由于 <整形变量> 只能逐渐增大,因此循环一定会终止。
例如:
FOR Counter:= 1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR;
Erg:=Var1;
假定 Var1 的缺省值为 1,则 FOR 循环执行结束后Var1的值应为32。

提示:
<结束值> 不能与计数值 <整形变量> 的极限值相等。例如:如果变量 Counter 类型为 SINT
而 <结束值> 的值为 127 则会形成死循环。

2.4.2.9 WHILE 循环语句

WHILE 循环语句的用法和 FOR 循环语句类似,只是WHILE 循环语句的中断条件可以是


任何的逻辑表达式。即只要满足给定的条件,循环就会一直被执行。
语法结构:
WHILE <逻辑表达式>
<程序>
END_WHILE;
只要 <逻辑表达式> 返回 TRUE 则 <程序> 会被一直重复执行。如果<逻辑表达式> 在
第一次取值时就返回 FALSE,则 <程序>不会被执行。如果 <逻辑表达式> 的值永不为
FALSE,则<程序>会被无休止的重复执行下去。

提示:
程序设计时要避免产生死循环。避免的方法是在循环语句内部改变判定条件,如使用一个
计数器。

例如:
WHILE counter<>0 DO
Var1 := Var1*2;
Counter := Counter-1;
END_WHILE
第 2 章 PROSYD 1131 概述
由于无需预知会有多少次循环,因此WHILE 和 REPEAT 循环语句在一定意义上要比 FOR
循环语句更强大,在某些情况下也只能用这两种类型的循环方式。但如果能够知道确切的循环
次数,则建议用 FOR 循环语句以避免产生死循环。

2.4.2.10 REPEAT 循环语句

REPEAT 循环语句和 WHILE 循环语句的不同点在于 REPEAT 循环语句是在循环开始执


行后才检测中断条件,因此不管中断条件如何限定,循环过程至少执行一次。
语法结构:
REPEAT
<程序>
UNTIL <逻辑表达式>
END_REPEAT;
<程序> 将一直执行直到 <逻辑表达式> 返回 TRUE 时才停止。
如果 <表达式> 的返回已经为 TRUE 则指令只执行一次。如果<表达式> 无法返回
TRUE, 则指令会无休止的执行从而产生死循环,引起相关时间延长。

提示:
程序设计时要避免产生死循环。避免的方法是在循环指令内部改变判定条件,如使用一个
计数器。

例子:
REPEAT
Var1 := Var1*2;
Counter := Counter-1;
UNTIL
Counter=0
END_REPEAT;

2.4.2.11 EXIT 语句

如果 EXIT 语句出现在 FOR, WHILE, 或 REPEAT 循环中,则内部的循环会被终止,不


管中断条件是否有效。

2.4.3 顺序功能图 (SFC)


顺序功能图是一种采用图形方式描述不同的动作并按一定的顺序的执行程序。
顺序功能图的网络示例:
第 2 章 PROSYD 1131 概述

2.4.3.1 步骤(Step)

用顺序功能图编写的 POU 包含一系列步骤,步骤之间通过定向的转换(Transition)相互连接在


一起。
有两种类型的步骤:
· 简单的步骤(Step)由动作(Action)和标识(Flag)组成,标识用于指示步骤(Step)是否被激活。
步骤中的动作生效后,其右上角会出现小三角形标志。
· IEC 格式的步骤包含一个标识(Flag)和一个或多个指定的动作或逻辑变量。相关的步
骤显示在步骤的右侧。

2.4.3.2 动作

动作可以包含一系列 IL 或 ST 程序、多个 FBD 或 LD 网络,或者是顺序功能图(SFC)。


简单步骤中动作通常被连接至一个步骤。用鼠标双击包含动作的步骤便可对该动作进行编
辑。或选择该步骤后再选择菜单命令 'Extras' 'Zoom Action/Transition' 对步骤进行编辑。另
外,一个步骤允许有一个输入或输出。
IEC 步骤中的动作位于对象管理器中 SFC-POU 下,可通过双击鼠标或在编辑器中按
<Enter> 键进入。新动作可以通过菜单 'Project' 'Add Action' 创建。
第 2 章 PROSYD 1131 概述

2.4.3.3 入口或出口动作

设计时可以给步骤附加一个入口动作和一个出口动作。入口动作只在步骤被激活后执行一
次,出口动作只在步骤完成后执行一次。
带有入口动作的步骤在其左下角标有"E",带有出口动作的步骤在其右下角标有"X"。
入口和出口动作可以用任何语言来实现。用鼠标双击步骤的对应角标可对入口和出口动作
进行编辑。
带有入口动作和出口动作的步骤示例:

on / Transition condition

步骤之间称为转换(transitions)。
转换条件必须为 TRUE 或 FALSE,因此它可以是逻辑变量、逻辑地址或逻辑常数。也可
以是一组能返回一个逻辑值的程序,既可以是 ST 语言结构(如:(i<= 100) AND b),也可以
是其它语言结构,但转换不能包含程序、功能块或赋值语句。

提示:
除了转换,可利用inching模式跳到下一个步骤,参见SFCtip与SFCtipmode。

2.4.3.4 步骤的执行

调用 SFC POU 后,初始步骤所包含的动作(双边线之内)首先执行。步骤中的动作被执


行即步骤正在被执行。在线方式下执行的步骤显示为蓝色。
在一个控制周期内激活的步骤所包含的动作被全部执行。后续步骤当转换条件为 TRUE
时也被相继激活。当前被激活的步骤在下一个循环周期内执行。

提示:
如果执行的步骤包含一个出口动作,它只能在下一个循环周期内且转换条件为 TRUE 时执行。

2.4.3.5 IEC 步骤

同简单步骤一样,标准 IEC 步骤也可在 SFC 中使用。


为了使用 IEC 步骤,必须在项目中加载专用的 SFC 库文件 lecsfc.lib 。
分配给 IEC 步骤的动作数量没有限制。与简单步骤不同,IEC 动作不限定作为某个步骤
的输入动作、步骤动作或输出动作,而是与步骤分别保存以便在 POU 内部多次使用。为此,
IEC 动作必须通过命令 'Extras' 'Associate action' 与单个步骤建立联系。
随同动作一起,逻辑变量也被指定到步骤。
第 2 章 PROSYD 1131 概述
动作及逻辑变量的启动或停止可通过所谓的限定符进行控制,也可以使用时间延迟。某个
动作在下一个步骤执行后仍可保持运行状态。例如通过限定符 S (Set)可以进行并发的处理过
程。
每次调用SFC块时,与之关联的逻辑变量可被置位或复位,即从TRUE转换为FALSE或从
FALSE 转换为TRUE。
与 IEC 步骤相关联的动作位于步骤的右侧,为一个两部分的方框。其左侧部分为限定符,
可包含有时间常数,右侧部分为对应各自逻辑变量名的动作名。
例:含两个动作的 IEC 步骤。

为了便于跟踪程序的执行进程,所有正在运行的动作同正在运行的步骤一样在在线状态下
显示为蓝色。在每个循环周期之后,系统会检查哪些动作处于运行状态。
请注意动作中时间限定符的使用规则,它们在同一周期中可以重复使用。

提示:
如果动作已被停止,它将可以被再一次执行,即每个动作至少可以被执行两次(同样适
用于带有限定符P的动作)。

最新插入的步骤是否为 IEC 步骤取决于是否选用了菜单命令 'Extras' 'Use


IEC-Steps' 。
在对象管理器中动作被直接挂接在其相应的 SFC POU 下。新的动作可通过菜单命令
'Project' 'Add Action' 来创建。
为了使用 IEC 步骤,必须将 SFC 库文件 lecsfc.lib 装入到项目中。
例如:在Object Organizer 中带有动作的 SFC POU。

2.4.3.6 限定符

使用如下限定符可将动作连接到 IEC 步骤:


N Non-stored 动作与步骤同时激活
R overriding 动作被停止
S Set (Stored) 动作被激活并保持运行状态直到有复位操作
第 2 章 PROSYD 1131 概述
L time Limited 动作在一定时间内处于运行状态,其最长时间即为步骤的运行
时间
D time Delayed 延时一定时间以后,如果步骤仍为运行状态则动作被激活直到
步骤停止运行
P Pulse 如果步骤被激活则动作仅被执行一次。
SD Stored and time Delayed 延时一定时间以后,动作被激活并保持运行状态直到被复位
DS Delayed and Stored 延时一定时间以后,动作被激活直到步骤停止或被复位
SL Stored and time limited 动作在一定时间内被激活
限定符 L, D, SD, DS 和 SL 需要按时间常数的格式设定一个值。

提示:
如果动作已退出,则它可以被再一次执行,即每个行为至少可被执行两次(同样适用于
带有限定符P的动作)。

2.4.3.7 SFC 中的隐含变量

在 SFC 中,可以使用一些已经声明的隐含变量。
步骤的标志用于存储步骤的状态。步骤标志(步骤运行或停止状态)在 IEC 步骤中用 <
步骤名>.x 表示,在简单步骤中用 <步骤名> 表示。当步骤运行时,该逻辑变量为TRUE;
当步骤停止时,该逻辑变量为 FALSE 。这种变量也可用于SFC块的每一个动作及转换中。
使用 <动作名>.x 可查询一个 IEC 动作是否被激活。
IEC 步骤中隐含变量 <步骤名>.t 可用于查询步骤的运行时间。
隐含变量也可以被其它程序访问。例如:boolvar1:=sfc1.step1.x; 此处 step1.x即为隐含
的逻辑变量,代表 POU sfc1 中 IEC 步骤step1的状态。

2.4.3.8 SFC 标志

SFC 中如果一个步骤的运行时间比其属性状态还要长,则某些特殊标志位将被置位。顺序
功能图中的某些变量也会被置位以便控制程序流程。标志位在使用前必须先声明为全局的或局
部的输入或输出变量。
SFCEnableLimit:这是一个逻辑变量,当它的值为 TRUE 时,步骤的超时时间被记录
在 SFCError 中,其它超时将被忽略。
SFCInit:当这一逻辑变量的值为 TRUE 时,顺序功能图被置回为初始步骤。其它 SFC 标
志也被复位(初始化)。初始步骤保持激活状态但并不执行,只有当 SFCInit 再次被置为 FALSE
时,功能块才开始正常执行。
SFCReset:此逻辑变量的功能与 SFCInit 类似。不同的是当初始步骤初始化结束后, 后
者还要做进一步的处理,例如 SFCReset 标志能够在初始步骤中被再次置为 FALSE。
SFCQuitError:当这个逻辑变量的值为 TRUE 时,SFC 将停止执行,由此,变量 SFCError
由于超时错误而复位。当这个变量的值再次为 FALSE 时,所有激活步骤中先前的时间被清除。
SFCPause::当这个逻辑变量的值为 TRUE 时,SFC 会停止执行。
SFCError:当 SFC 发生超时错误时,此逻辑变量的值被置为 TRUE 。如此时再次产生
一个超时错误,该错误将不被记录,除非变量 SFCError 已复位第一个错误。
第 2 章 PROSYD 1131 概述
SFCTrans: 当启动一个转换时,此逻辑变量的值置为 TRUE。
SFCErrorStep:这是一个字符变量。如果 SFCError 记录了一个超时错误,则此变量将
保存导致此错误的步骤名称。
SFCErrorPOU:该字符变量包含产生超时错误的块的名称。
SFCCurrentStep:这是一个字符变量,可保存独立于时间控制而被激活的步骤名称。步
骤名保存在外部右侧的分支中。
SFCErrorAnalyzation:这是一个字符变量,可给出转换表达式以及全部变量,这些变
量在一个组合表达式中,该表达式的运算结果为FLASE且因此在先前步骤中引起超时。用于记
录超时的变量SFCError flag 被要求声明。SFCErrorAnalyzation 返回调用功能
AppedErrorString,功能存放在功能库analyzation.lib中。输出字符串用"|"分隔多个单元。
SFCTip, SFCTipMode:BOOL 型变量,用于单步执行SFC程序。当SFCTipMode=TRUE,
并且SFCTip设置为TRUE时,程序可跳转至下一步骤。当SFCTipMode 设置为FALSE时,程序
将跳过转换。

2.4.3.9 选择分支

在SFC程序中可以定义两个或更多支路的选择分支。每个选择分支必须以一个转换作为开
始和结束。选择分支可以包含并行分支及其它选择分支。一个选择分支开始于同一水平线(选
择开始)并结束于同一水平线(选择结束)或使用一个跳转。
如果选择分支前的一个步骤被激活,那么每个选择分支的第一个转换值从左向右被依次计
算出来。从左边开始,第一个转换条件值为TURE的转换开通并执行其下面的步骤。

2.4.3.10 并行分支

SFC可以定义两个或更多支路的并行分支。每个并行分支必须以一个步骤作为开始和结束。
一个并行分支可以包含选择分支和其它并行分支。一个并行分支开始于一双线(并行开始)并
结束于一双线(并行结束)或使用一个跳转。
如果并行分支开始线之前的一个步骤被激活并且这个步骤后的转换条件为TRUE, 那么所
有并行分支的第一个步骤被激活。这些步骤相互之间为并行处理。当先前的所有步骤被激活且
每个步骤前的转换条件产生的值为TRUE,则并行分支结束线后的步骤被激活。

2.4.3.11 跳转

跳转可将程序进程连接到指定步骤,步骤名被写在跳转符号的下面。跳转不能用于向上连
接程序或交叉连接程序。

2.4.4 功能块图(FBD)
FBD是一种图形化编程语言,由一系列网络组成,每个网络包含一个结构,代表一个逻辑
表达式或算术表达式,或是一个功能块的调用,一个跳转,或一个返回。
例如:采用FBD语言所编写的一个网络。
第 2 章 PROSYD 1131 概述

2.4.5 连续功能块图(CFC)
CFC不同于功能块图FBD采用网络结构编程,而是采用一些可自由放置的单元。因此允许
使用反馈。

例如:CFC程序。

2.4.6 梯形图 (LD)


LD也是一种图形化编程语言,类似于电气回路图的结构。
一方面,梯形图适用于构造逻辑控制,另一方面,它也能够像FBD一样创建网络。因此,
LD非常适用于控制调用其它POU 。
梯形图由一系列网络组成。一个网络被限定在左右两条垂直线间,中间由触点、线圈、连
线等构成一个线路图。
每个网络均由一连串从左向右连接的触点组成,触点状态"ON" 或 "OFF" 对应布尔变量
TRUE、FALSE。每个触点均对应一个布尔变量。如果变量为TRUE,那么该状态就可通过连线从
左向右传递。否则右侧线路将接收的值为OFF。
例如:由触点和线圈组成的梯形图网络。
第 2 章 PROSYD 1131 概述

2.4.6.1 触点

每个梯形图网络的左侧由一些触点组成(触点采用两条平行竖线表示| |),从左向右排列
的每一个触点分别代表条件"On" 或 "Off"。
一个布尔型变量可属于每一个触点并对应布尔量 TRUE 或 FALSE。如果变量为TRUE,那
么该状态可通过连线从左向右传递。否则右侧线路收到的值为“Off”。
触点也可以连接到并行线路上。不论是并行线路还是串行线路,最左侧的触点必须传送一
个状态“ON”以确保最后一个触点也能够传送“ON”。
触点也可以取反,通过在触点符号内加一斜杠“|/|”表示。如果触点变量为FLASE,其线路
值就可以传送。

2.4.6.2 线圈

在梯形图网络的右侧有任意多个线圈,使用括号“()”表示。线圈只能以并行方式连接。
线圈将从左侧传送过来的值保存在一个指定的布尔变量中。通道线路的状态值(ON或OFF)
均可体现。
触点和线圈都可以取反(见例子中触点SWITCH1和线圈%QX3.0)。如果一个线圈被取
反,它将在指定的布尔变量中保存取反后的值。如果一个触点被取反,它只能在其指定的布尔
变量为FLASE时才能导通。

2.4.6.3 梯形图中的功能块

与触点和线圈一样,功能块和程序也可以被调用并位于梯形图网络的左侧,调用时必须有
一个布尔输入值和一个布尔输出值。

2.4.6.4 置位/复位线圈

线圈可以被定义为置位线圈或复位线圈。线圈符号内加有“S”的线圈(S)为置位线圈。一
旦这个线圈指定的布尔变量被设为TRUE,这个值将一直保持下去。线圈符号内加有“R”的线圈
(R)为复位线圈。一旦这个线圈指定的布尔变量被设为FLASE,这个值将一直保持下去。

2.4.6.5 LD 与 FBD 希望利用触点去控制其它


POU,可采用两种方法
当使用梯形图时,如果你希望利用触点去控制其它POU,可采用两种方法。方法一,可以
将线圈的值存储在一个全局变量中,以便被其它地方调用。方法二,在梯形图网络中通过EN
直接调用POU。
这样的POU可以是一个完整的运算符,函数,程序或功能块,它们有一个EN标记的附加输
入端。EN输入类型始终为布尔型,当EN输入端的值为TRUE时,POU被执行。
带EN的POU与线圈并接,EN输入端连接在线圈与触点之间的线路上。如果从线路传来的
状态为ON,这个POU将正常执行。
使用带EN的POU,你可以创建类似于FBD编程方式的网络。
例如:带EN的POU梯形图。
第 2 章 PROSYD 1131 概述

2.5 调试及在线功能
2.5.1 采样轨迹(Sampling Trace)
采样轨迹使你可以依靠触发事件跟踪记录某个变量的一系列值。触发事件是指预先定义的
一个布尔变量(触发变量)的上升沿或下降沿。PROSYD 1131 允许记录20个变量,每个变
量可以记录500个值。

2.5.2 调试 (Debugging)
PROSYD 1131 的调试功能可以使你方便地查出错误。
选择'Project' 'Options' ,在弹出的对话框内的 Build 中选 Debugging 。

2.5.3 断点(Breakpoint)
程序中设置的断点可以终止程序的进程,并可以察看在此特定位置的各变量的值。
在所有类型的程序编辑器中都可以设置断点。在文本编辑器中,通过行号设置断点;在梯
形图(LD)和FBD编辑器中,通过网络号设置断点;在CFC编辑器中,通过POU设置断点;在
SFC编辑器中,通过步骤设置断点。在功能块实例中不能设置断点。

2.5.4 单步执行(Single step)


单步执行方式:
·IL语言: 执行程序直到遇到下一个CAL, LD 或 JMP 指令为止。
·ST语言: 执行下一个指令。
·FBD, LD语言: 执行下一个网络。
·SFC语言:执行动作直到下一步骤执行时为止。
通过一步一步的执行过程,可以检查程序的逻辑关系是否正确。

2.5.5 单循环(Single Cycle)


单循环设置使得每个循环结束后程序停止执行。

2.5.6 在线修改数值(Chang values online)


在操作过程中,变量能被赋值(写值)或在每个周期结束后被重新赋予一个值(强制)。
在线模式下,通过双击变量数值可以进行在线修改。对于布尔型变量,其数值可在TRUE 和
FALSE 之间任意转换。对于其它类型的变量,通过弹出的WriteVariable对话框用于编辑变
量的值。
第 2 章 PROSYD 1131 概述

2.5.7 监控
在线模式下,从控制器中可实时读取并显示变量的值。在变量声明区和程序编辑器中可以
查看这些变量,也可以在监视与配方管理器(watch and receipt manager)和可视化工具
(visualization)中查看变量的当前值。如果功能块实例中的变量也要求被监测,则必须打开
相应的实例。
如果监测变量为输入/输出类型(VAR_IN_OUT)变量,则监控到被输出的参数值。
如果监测变量为指针型(pointer)变量,在变量声明区中指针数值及指向的数值均被输出,
在程序区中只有指针数值被输出。

+ --指针变量 = '<'指针值`>'

因此,指针值(POINTER)也可以显示。单击十字符号或双击其右侧字符可使当前显示框
缩小或扩展。
例如:指针变量的监视。

在执行过程中显示所有的数值。
数组元素的监视:数组元素的标号可以是常数,也可以是变量。
anarray[1] = 5
anarray[i] = 1
第3章 编程实例

如果数组索引包含表达式(例如:[i+j]或[i+l]),那么该数组元素就不能显示。

2.5.8 仿真
仿真运行时,PLC程序并不是在PLC中运行,而是在PROSYD 1131中运行。所有在线功能
都可以使用。使你可以在没有PLC硬件的情况下测试程序。

2.5.9 日志
日志文件按时间顺序记录在线状态下的用户操作,内部处理过程,状态变化以及异常事件。
它用于监控和事故跟踪。

2.6 标准
IEC 61131-3标准是PLC编程语言的国际标准。PROSYD 1131编程语言符合该标准的规
定。
依照这个标准,一个程序包含以下几个部分:
„ 数据结构
„ POUs
„ 全局变量
常规的编程语言都包含标识符,地址,类型,注释及常数。
PROSYD 1131 程序由特殊的以PLC_PRG命名的POU开始执行。PLC_PRG 可调用其它
POU。

3 编程实例

现在开始编写一个简单的小程序用于控制十字路口上的两个交通灯。两个交通信号灯
的红/绿状态是相互交替的,为了避免交通事故,我们还将插入黄色或黄/红过渡状态。后
者将比前者的时间长。

3.1 交通信号灯控制实例
从这个例子中可以看到,时间的长短取决于用IEC 61131-3标准编写的程序。你可以在
PROSYD 1131 的帮助下,采用任何一种标准语言进行编程,并且可以很容易地采用
PROSYD 1131 的仿真技术进行连接。

3.1.1 创建 POU
开始总是容易的:打开 PROSYD 1131 并且选择 'File' 'New'。
在显示的对话框中,第一个 POU 已经命名为默认名 PLC_PRG。保留这个名字并将
POU 类型定义为程序。每个项目都需要一个以该名命名的程序。这样,我们选择连续功
能图表 (CFC) 作为这个POU的编程语言。
现在使用菜单条中的命令 'Project' 'Object Add',或使用上下菜单(用鼠标右键点击
Object Organizer) 创建三个或更多的对象。SFC 语言的程序名为 SEQUENC,FBD 语言
的功能块名为 TRAFFICSIGNAL,功能块 WAIT 采用 IL 语言编写。
第3章 编程实例

3.1.2 TRAFFICSIGNAL 的作用是什么?


在 POU TRAFFICSIGNAL 中,交通信号状态分别对应不同的灯。也就是红色状态和黄
/红状态时,红灯亮;黄色状态和黄/红状态时,黄灯亮等等。

3.1.3 WAIT 的作用是什么?


在 WAIT 中,我们将编写一个简单的定时器,以毫秒为单位接收信号状态的时间长度
作为输入,时间周期结束后产生一个 TRUE 作为输出信号。

3.1.4 SEQUENCE 的作用是什么?


在 SEQUENCE 中,所有的灯在所要求的相应的时间周期内点亮。

3.1.5 PLC_PRG 的作用是什么?


在 PLC_PRG 中,启动信号连接到交通灯的SEQUENCE功能块上,“color instructions”
为每个灯输出信号。

3.1.6 "TRAFFICSIGNAL" 声明
让我们转入TRAFFICSIGNAL。在声明编辑器中,声明一个名字为 STATUS,类型为 INT
的输入变量(在关键字 VAR_INPUT 和 END_VAR 之间)。STATUS 将有四种可能的条件,
分别对应TRAFFICSIGNAL的四种状态:绿,黄,黄/红,红。
功能块 TRAFFICSIGNAL 有三个输出变量,分别是:RED,YELLOW,GREEN。你需
要声明这三个变量。
功能块 TRAFFICSIGNAL 的声明部分如下。

声明部分

主体部分

3.1.7 "TRAFFICSIGNAL" 主体
该 POU 的输出变量的数值取决于输入变量 STATUS 。在 POU 主体中点击第一个网
第3章 编程实例
络的左侧区域(标有数字1 的灰色区域),你现在已选定了第一个网络。选菜单项 'Insert'
'Box'。
在第一个网络中插入一个带有两个输入端的运算符AND。
搞错了!这是CoDesys软
件的写法,PROSYD的应
该是"Operator"

用鼠标点击文字 AND,并将其改为文字 EQ。在上面的输入端问号处键入变量


STATUS。在下面的输入端问号处键入 1。就可以得到以下网络:

按 EQ 框的右侧选 EQ 操作输出。选 'Insert' 'Assign'。将问号 ??? 改为 GREEN。生成如


下网络结构:

STATUS 等于1,结果赋值给 GREEN。如果预置状态值为1,则网络转换为 GREEN状


态。
其 它 TRAFFICSIGNAL 颜 色 状 态 需 要 使 用 两 个 或 更 多 个 网 络 。 用 命 令 'Insert'
'Network (after)' 创建。这些网络按照下面的例子建立。
例子:功能块 TRAFFICSIGNAL 的指令部分

见写上去的方

第3章 编程实例
为了在一个运算符前插入另一个运算符,你必须先选择运算符的输入端,该输入端用
于连接将要插入的运算符。
使用命令 'Insert' 'Box'。你可以像建立第一个网络一样建立这些网络。
现在第一个 POU 完成了。TRAFFICSIGNAL根据 STATUS 的输入值来控制所有的灯。

3.1.8 连接标准库(standard.lib)
POU WAIT 中的定时器需从标准库中调用。通过 'Window' 'Library Manager' 打开
库管理器,点击 'Insert' 'Additional library',弹出一个对话框,从列表中选择标准库(standard.lib) 。

3.1.9 "WAIT" 声明
让我们转入 WAIT。这个 POU 是一个定时器,由它决定每个 TRAFFICSIGNAL 状态
时间的长短。它含有一个输入变量 TIME,类型为 TIME;一个输出变量OK,类型为BOOL。
当达到设定的时间周期时,输出变量OK的值为 TRUE。我们在声明变量OK时,将其设置 初始?
为 FALSE (在分号后) " := FALSE "。
我们在这里需要使用 TP(延时脉冲定时器)。它含有两个输入(IN,PT)和两个输出(Q,
ET)。TP 的作用如下:
当 IN 为 FALSE时,ET 为 0 且 Q 为 FALSE。当 IN 为 TRUE 时,ET 中的时间值
以毫秒为单位计时。当 ET 达到 PT 值后不再计时。在此期间,当 ET < PT 时,Q 输出
值为 TRUE;一旦 ET 达到 PT 值时,Q 输出值为 FALSE。有关标准库中的所有POU的
描述可以在附录中查看。
为了在 WAIT 中使用 TP,我们必须创建一个 TP 局部实例。 因此我们声明了类型
为 TP (在关键字 VAR,END_VAR之间)的局部变量 ZAB。
功能块 WAIT 声明部分如下:

即ZAB是个TP(定
时器Timer)

3.1.10 "WAIT" 主体
为了创建所需的定时器,必须编写如下POU主体程序:
功能块 WAIT 的指令部分。
第3章 编程实例

其实就是TP计时器
的输出端Q,只不
过这里是用全局变
上一表达式结果为
真,则跳转至标志
量ZAB表示TP
mark 处

将TIME_IN数据存
到ZAB.PT 其实就是TP计时器
的输入端PT

首先检测输出 Q 是否已经设置为 TRUE,我们对 ZAB 没有做任何改变,只是调用功


能块 ZAB (为了检查时间周期是否结束),
另外,将 ZAB 中的变量 IN 设置为 FALSE,同时 ET 为 0,Q 为 FALSE。这样所
有变量都被设置为初始条件。取变量 TIME 的值送入变量 PT 并调用 ZAB(IN 为
TRUE)。在功能块 ZAB 中,变量 ET 开始计时,直到达到 TIME 值后,Q 设置为 FALSE。
WAIT 每次执行完成后,Q 的否定值存入 OK。当 Q 为 FALSE 时,OK 输出 TRUE。
定时器已经介绍完成了。现在,我们将在主程序 PLC_PRG 中把两个功能块 WAIT 和
TRAFFICSIGNAL 结合起来。

3.1.11 "SEQUENCE" 第一扩展级


首先,我们进行变量声明。它们是:一个输入变量 START,类型为 BOOL;两个输出
变量 TRAFFICSIGNAL1 和 TAFFICSIGNAL2 ,类型为 INT;一个 DELAY 作为延时定时
器,类型为 WAIT。程序 SEQUENCE 显示如下:
程序 SEQUENCE 第一扩展级的声明部分。
第3章 编程实例

3.1.12 创建 SFC 图表
在 SFC 中,POU 的第一个图表总是由一个动作“Init” 及其后面的转换"Trans0" 和 一
个返回到 Init 的跳转组成。我们必须要扩展它。
在编写每个动作和转换之前,让我们先确定图表的结构。每个 TRAFFICSIGNAL 状态
都需要一个步骤。通过 Trans0 插入,并点击 'Insert' 'Step transition (after)'。重复这个
步骤三次或更多次。
直接点击转换名或步骤名,就可以对它进行修改。命名 Init 之后的第一个转换名为
"START",其他所有转换名为 "DELAY.OK"。
START 为 TRUE 时,第一个转换打开;DELAY 中的 OK 为 TRUE 时,也就是当设
定时间周期完成时,所有其它转换都打开。
从上到下的步骤名分别为 Switch1、Green2、Switch2、Green1,Init 保留其名。"Switch"
中 包 含 黄 色 状 态 , 在 Green1 中 TRAFFICSIGNAL1 将 为 绿 色 , 在 Green2 中
TRAFFICSIGNAL2 将为绿色。最后,在 Switch1 之后,改变 Init 的返回地址。图表如下:
程序 SEQUENCE 第一扩展级指令部分。
第3章 编程实例

现在,我们为每一个步骤编写程序。如果你双击步骤,就会弹出一个对话框用于建立
一个新的动作。这里我们使用 IL(Instruction List)语言编程。

3.1.13 动作及转换条件
在步骤 Init 的动作中变量被初始化,TRAFFICSIGNAL1 的 STATUS 将为1(绿色)。
TRAFFICSIGNAL2 的状态将为3 (红色)。步骤 Init 的动作如下所示:
Init 动作。

Switch1 将 TRAFFICSIGNAL1 的状态转变为2 (黄色),TRAFFICSIGNAL2 的状态转变为4 (黄


第3章 编程实例
-红色)。另外,将延时时间设置为2s。动作如下:
Switch1 的动作。

Green2 中 , TRAFFICSIGNAL1 为 红 色 (STATUS:=3) , TRAFFICSIGNAL2 为 绿 色


(STATUS:=1),延时时间为5s。
Green2 的动作。

Switch2 中 , TRAFFICSIGNAL1 的 STATUS 转 变 为 4 ( 黄 - 红 色 ) , TRAFFICSIGNAL2 的


STATUS 转变为2 (黄色)。延时时间设置为2s。
Switch2 的动作。

Green1 中,TRAFFICSIGNAL1 为绿色(STATUS:=1),TRAFFICSIGNAL2 为红色(STATUS:=3),


延时时间为5s。
Green1 的动作。

程序的第一扩展级部分完成了。现在可以编译并仿真测试这个程序。
第3章 编程实例

3.1.14 "SEQUENCE" 第二扩展级


为了确保图表至少有一个选择分支,以便在晚上关掉交通灯。我们在程序中加了一个
计数器用于记录 TRAFFICSIGNAL 的循环次数,当循环次数达到某个数值后,关掉交通灯。
首先,我们需要定义一个新的变量 COUNTER,类型为 INT。在 PLC_PRG 的声明部
分声明这个变量,并在 Init 中将此变量初始化为0。
Init 的动作,第二版本。

选中 Switch1 后面的转换并插入一个步骤及一个转换。选中这个新转换并在左侧插入
一个选择分支。在左侧转换后面再插入一个步骤和一个转换。在这个最新生成的转换后面
插入一个跳转(Jump)。
命名新生成的部分如下:两个新步骤中上面的命名为 "Count",下面的命名为 "Off"。
转换(从上到下,从左到右)分别命名为 EXIT、TRUE 及 DELAY.OK。 新生成的部分用
黑框标注如下:
程序 SEQUENCE 第二扩展级指令部分。
第3章 编程实例

两个新动作和一个新的转换条件完成了。在步骤 Count 中增加一个变量 COUNTER。


Count 的动作:

EXIT 转换检测计数器是否大于某个设定值(例如:设定值为7):
EXIT 转换。

在 Off 中,两个灯的状态为5(OFF,即每个状态数值都不等于1,2,3或4),计数器
COUNTER 复位为0,延时时间设为10s:
Off 的动作。

3.1.15 结果
我们假设的情况是,七个 TRAFFICSIGNAL 循环后,夜幕降临,交通灯TRAFFICSIGNAL
熄灭,10秒钟后,白天再次来临,交通灯自动运行,开始执行整个过程。

3.1.16 PLC_PRG
在 SEQUENCE 块中,我们定义了两组交通灯及相对于每组交通灯状态的时间顺序。
然而,我们所看到的交通灯系统是现场总线系统中的一个模块,例如:CANbus。我们必
须在 PLC_PRG 块中建立一些输入及输出变量。我们希望通过一个开关(ON)启动交通
灯系统并根据 SEQUENCE 的每个步骤向六个灯(每组交通灯含红,绿,黄三个灯)发送
相应的"signal command"。在编写程序之前,我们先声明六个布尔输出变量和一个布尔输
入变量并同时为其赋值相应的 IEC 地址。
下面,我们声明变量 Light1 和 Light2 。
LIGHT1 和 LIGHT2 的声明。
第3章 编程实例

根据 SEQUENCE 的每个步骤,向上面所提及的六个输出变量递送相应灯的布尔值。
然而,我们没有在此声明输出变量,这些输出变量已预先在 PLC_PRG 块中的程序资源
(Resources)中定义为全局变量(Global Variable)。在 SEQUENCE 中, 用于设置变量
START 为 TRUE 的布尔型输入变量 IN 同样被定义为全局变量。ON 也被赋值给一个
IEC 地址。
选择标签Resources并打开全局变量表
建立如下声明:

变量名(例如:IN)后面跟随AT,然后是以一个百分号开始的 IEC 地址。I 表示输入,


Q 表示输出,B (在这个例子里)表示字节,模块的每个位地址用 0.0(0.1,0.2,等等)表
示。在这个例子里,不需要对控制器进行配置,因为在你的计算机中已包含有效的硬件对
象数据。请参看 PLC 配置,会得到更多信息。
我们现在来完成 PLC_PRG 块。
进入编辑窗口。选择连续功能图(Continuous Function Chart)编辑器,由此可以在
菜单栏中获得所有 CFC 元件符号。
使用鼠标右键点击编辑窗口,选择元件 Box。用鼠标点击文本AND并将其改为
"SEQUENCE"。这样就可以调出 SEQUENCE 功能块。用同样的方法再插入两个元件Box,
并将文本改为 TRAFFICSIGNAL。TRAFFICSIGNAL 是一个功能块,在功能块上方三个
红色问号的地方分别键入已声明的局部变量 LIGHT1 和 LIGHT2。建立一个命名为 ON
的 Input 类型元件和六个类型为 Output 的元件,这六个Output元件分别命名为
L1_green,L1_yellow,L1_red,L2_green,L2_yellow,L2_red。
现在,程序中的所有元件都已建立,你可以将各个元件连接起来,方法是:用鼠标按
元件的输入/输出位置的短线并拖长至希望的位置。
最后,你所编写的程序应如下图。
第3章 编程实例

3.1.17 TRAFFICSIGNAL 仿真
现在测试程序。首先对其进行编译('Project' 'Rebuild all'),然后登录('Online' 'Login')
并下载程序('Online' 'Download')
。如果选择'Online' 'Run',程序就会按照所编写的步骤
顺序执行下去。PLC_PRG 窗口变为监控窗口。在变量声明编辑器中,双击 “+”,打开一
个变量表,变量的当前值就可以显示出来。

3.2 图形化交通信号灯
使用 PROSYD 1131 的图形显示功能可以快速、容易地使项目变量形象化。我们
现在将要绘制两个交通信号灯和一个 ON 开关用来举例说明程序的执行过程。

3.2.1 创建新图形
为了创建一个新图形,必须首先进入图形编辑(Visualization)范围。点击左侧窗口底
部标有符号 的选项卡。执行命令 'Project' 'Object Add', 打开一个对话框,输入一个新
名称。

点击对话框中的 OK,新建立的图形窗口就打开了。

3.2.2 插入图形元件
建立 TRAFFICSIGNAL 图形,应执行如下步骤:
·执行命令 'Insert' 'Ellipse' ,在图形编辑器中按住鼠标左键画一个直径为2cm
第3章 编程实例
的圆。
·双击这个圆,打开标准图形元件对话框。
· 选 Category 中 的 Variables , 进 入 Change color 区 域 , 键 入 变 量
名 .L1_red 或
使用辅助输入按钮<F2>选择这个变量。这是 PLC_PRG 中功能块实例 LIGHT1 中变
量 RED 的地址。
图形对话框 Variables。

·然后选择 Category 中的 Color,点击按钮 Inside。选择一个中性颜色,例


如黑色。
·点击 Alarm color 区域中的按钮 Inside,选择最接近红灯的红色。
图形配置对话框(Color category)

这个圆在通常情况下为黑色,当变量LIGHT1中的变量 RED 为 TRUE 时,变为红色。


由此创建了第一个 TRAFFICSIGNAL 的第一个灯!

3.2.3 其它交通灯
执行命令 'Edit' 'Copy' (<Ctrl>+<C>) ,然后再执行两次 'Edit' 'Paste' (<Ctrl>+<V>)
命令。这样就可以得到与第一个圆的尺寸相同的两个圆。你可以用鼠标左键按住一个圆并
将其拖动到编辑窗口左部位置并依次将这三个圆垂直排列。双击新建的两个圆中的一个,
再次打开配置对话框。在 Change Color 区域中,输入相应的变量:
第3章 编程实例
中间的圆形:L1_yellow
下面的圆形:L1-green
在 Category Color 中的 Alarm color 区域,为两个圆选择相应的颜色(yellow 或
green)。

3.2.4 TRAFFICSIGNAL 灯箱
执行命令 'Insert' 'Rectangle',用同样的方法插入一个长方形并把三个圆围绕起来。
为这个长方形选择一种中性色,执行命令 'Extras' 'Send to back',将三个圆显示出来。
如果仿真模式还没有启动,可以用命令 'Online' 'Simulation' 来激活。
如果你已经使用命令 'Online' 'Login' 和 'Online' 'Run' 启动了仿真模式,那么就会发
现第一个交通信号灯的颜色已经改变了。

3.2.5 第二个交通信号灯
创建第二个交通信号灯,最简单的方法是把第一个交通信号的所有元件拷贝过来。因
此选中第一个交通信号灯的所有元件并用命令 'Edit' 'Copy' 和 'Edit' 'Paste' 进行复制。然
后分别将对应于"LIGHT1" 的文本改为对应于"LIGHT2"的文本,由此,第二个交通信号灯
的显示图形就完成了。

3.2.6 开关 ON
与上述为一个交通灯设置颜色一样,插入一个长方形并为其设置颜色。在 Variables 中
的 Change color 区域输入 .ON。在 Text 中的 Content 区域输入 "ON"。
图形配置对话框 (Category Text)。

为了使用鼠标点击开关并将变量 ON 设置为 TRUE,在 Input 中的 Tip Variables 区


域必须键入 .ON。变量按键意味着当鼠标点击图形元件时,变量 .ON 被置为 TRUE,而
当鼠标键松开时,变量 .ON 又被复位为 FALSE (因此,我们在交通灯程序里创建了一
个简单的开关设备)。
图形配置对话框 (Category Input)
第3章 编程实例

3.2.7 图形中的字体
为了使图形更完善,先插入两个矩形,分别放在两个交通信号灯的下面。
将 Color 中的 Frame 设置为白色,并在 Text 中的 Contents 区域写入 "Light1" 或
"Light2"。现在的图形显示如下:
第4章 PROSYD 1131 的组件

4 PROSYD 1131 的组件


4.1 主画面

在 PROSYD 1131 主画面中包含以下单元(从上至下):


z 主菜单
z 工具栏 (可选); 用于菜单命令的快速选择
z 对象管理器,含选项卡POUs, 数据类型,可视化组件及程序资源
z 垂直屏幕分隔线,在 PROSYD 1131 工作区与对象管理器之间
z 工作区,程序编辑窗口所在位置
z 信息窗口(可选)
z 状态栏(可选),含项目的当前状态信息。

4.1.1 主菜单
主菜单位于主画面的最上方,包含所有菜单命令。

4.1.2 工具条
用鼠标点击图标可以更快速地选择菜单命令。工具条中可用的图标根据当前的活动窗
口而有所不同。
第4章 PROSYD 1131 的组件
移动鼠标至某个图标,按鼠标键点击运行命令。。
用鼠标指向某个图标并停留一个短暂时间,该图标名称就会自动显示出来。
如果要查看工具栏中每个图标的详细描述,请选择主菜单中的帮助栏(Help)。
工具栏的显示是可选的(参见‘Project’‘Options’ )。

4.1.3 对象管理器
对象管理器位于 PROSYD 1131 主画面的左侧。在它的底部含有对应四种不同对象

类型的图标选项卡。 POUs, 数据类型, 可视化组件, 程序资源。用鼠


标点击选项卡或使用键盘上的左右键,就可以在不同的对象类型间进行切换。
你将在项目中的对象管理一章学习在对象管理器中如何使用这些对象。

4.1.4 屏幕分隔线
屏幕分隔线是两个不重叠的视窗间的边界。在 PROSYD 1131 中,屏幕分隔线位于
对象管理器与工作区主窗口之间;POU声明部分和POU指令部分之间;工作区与信息窗口
之间。
你可以使用鼠标来移动屏幕分隔线,方法是:移动鼠标至屏幕分隔线,按住鼠标左键
并移动。
即使在窗口尺寸已经改变的条件下,也要确保屏幕分隔线始终处于显示位置。如果屏
幕分隔线看上去好像不存在,你只要放大你的窗口就可以了。

4.1.5 工作区
工作区位于 PROSYD 1131 主画面的右侧。所有对象编辑器和库管理器都在此区域
显示。当前对象名显示在标题栏中,在其后面跟着显示POU类型名称的缩写及所使用的编
程语言的缩写
从主菜单中的 'Window' 下,你可以找到所有窗口管理命令。

4.1.6 信息窗口
在主画面中,信息窗口位于工作区下方。
该窗口包含所有编译、检查、比较等信息。搜索结果及交叉引用表也在此输出。
在信息窗口中,用鼠标双击一条错误信息,就可以打开对象编辑器,对象中出错的行
第4章 PROSYD 1131 的组件
被选择。使用命令 `Edit` `Next error` 和 `Edit` ` Previous error `,可以快速地在故障
信息之间跳转。
信息窗口的显示是可选的(参见`Window` `Messages`)。

4.1.7 状态栏
状态栏在 PROSYD 1131 主画面的底部。可提供有关当前项目和菜单命令的信息。
如果某个相关项目有效,在状态栏右侧的标注显示为黑色,否则为灰色。
当工作在在线模式下时,Online 显示为黑色。当工作在离线模式下时,显示为灰色。
在线模式下,通过状态栏可以察看程序是否处于仿真状态(SIM);是否正在运行
(RUNS);是否设置了断点(BP);是否强制了变量输出 (FORCE)。
指针的当前位置使用文本方式显示所在行号和列号(如 Line:5, Col.:11)。当处于
覆盖模式时,'OV' 显示为黑色。按 <Ins> 键可在覆盖模式和插入模式间切换。
在可视化窗口,鼠标的当前位置使用相对于屏幕左上角的象素坐标 X 和 Y 表示 。
如果鼠标指向一个元件(Element),或这个元件正在被处理,则它的序号被显示出来。
插入一个新元件时,其名称也会显示(如:Rectangle)。
如果你刚刚选择了一个菜单命令,但还没有确认,则关于该命令的简短描述会显示在
状态栏中。
状态栏的显示是可选的(参见'Project' 'Options')。

4.1.8 上下文菜单
快捷键: <Shift> + <F10>
除了通过菜单栏选择执行命令外,还可以使用鼠标右键功能。显示的菜单中包含用于
选择对象、用于当前编辑器的所最常用的命令。对于不同的活动窗口,可用的命令也不同。

4.2 选项功能
使用命令‘Project’ ‘Options’可以对软件进行相关设置。新生成的设置存放在文件
“PROSYD 1131.ini” 中,重新启动PROSYD 1131后生效。

4.2.1 ‘Project’ 'Options'


用此命令打开选项设置对话框。所有选项被分成不同的类别。在对话框左侧,用鼠标
点击或用方向键选择相关选项,在右侧进行设置。
选项设置分为如下类别:
z Load & Save 装载及存储
z User information 用户信息
z Editor 编辑器
z Desktop 桌面
z Colors 颜色
z Directories 目录
z Log 日志
z Build 编译
z Passwords 密码
z Sourcedownload 源代码下载
z Symbol configuration 图标设置
第4章 PROSYD 1131 的组件
z Macros 宏

4.2.2 装载及存储选项
如果选择这个选项,弹出以下对话框:

当激活一个选项后,符号(√)显示在选项前。
如果选择了 Create Backup 选项,PROSYD 1131 在存储文件时将生成带有扩展
名 ".bak" 的备份文件。这样你就可以恢复上次存储之前的版本。
如果选择了 Auto Save 选项, 当工作时,你设计的项目将依照所设定的时间间隔
(Auto Save Interval)不断地被存储到具有扩展名 ".asd" 的临时文件中。通常,当从程
序中退出时,该文件会自动删除。如果由于某种原因 PROSYD 1131 没有正常关闭(例
如:电源故障),这个文件不会被删除。当你再次打开程序时,显示如下信息:

你现在可以决定是否打开原始文件或自动存储的文件。
请求项目信息(Ask for project info):当存储一个新项目或重新命名一个项目时,
会显示一个要求输入项目信息的对话框。你可以使用命令 'Project' 'Project info' 查看项目
信息。
自动装载(Auto Load): 当再一次启动 PROSYD 1131 程序时,上次打开的项目
会自动载入。在启动 PROSYD 1131 时所装载的项目也可以通过在命令行中输入项目名
来载入。
编译前存储(Save before compile):项目在每次编译前会自动存储。
第4章 PROSYD 1131 的组件

4.2.3 用户信息选项
如果选择这个选项,弹出以下对话框:

用户信息包含:用户名、字头、公司名称。每个输入信息都可以修改。

4.2.4 编辑器选项
如果选择这个选项,弹出以下对话框:

当激活一个选项后,符号(√)显示在选项前。
可对编辑器作如下设置:
• 自动声明 Autodeclaration
• 自动套用格式 Autoformat
• 表格式声明 Declaration as table
• 制表宽度 Tab width
• 字体 Font
第4章 PROSYD 1131 的组件
• 显示文本选择(标记) Display of the text selection (Mark)
• 数值显示 Display of the Bitvalues

4.2.4.1 自动声明

如果在选项对话框中的编辑器类别中选择了自动声明(Autodeclaration)选项,那
么在所有编辑器中,对未声明的变量会自动弹出一个变量声明对话框。
激活此选项后,选项前面出现(√)。

4.2.4.2 自动套用格式

如果在选项对话框中的编辑器类别中选择了自动套用格式(Autoformat),那么
PROSYD 1131 将在 IL 编辑器和声明编辑器中执行自动套用格式。当一行指令输入完
成后,将以如下格式显示:
• 以小写字母输入的操作命令被显示成大写字母。
• 各列之间通过空格均匀分开。
激活此选项后,选项前面出现(√)。

4.2.4.3 表格式声明

如果在选项对话框中的编辑器类别中选择了 Declarations as tables ,你就可以在一


个表格中编辑变量,而不用使用文本式的变量声明编辑器。
所有 POU(程序组织单元)编辑器都由变量声明部分和程序主体部分组成。变量声明
部分和程序主体部分之间通过屏幕分隔线分开,该分隔线可以根据要求被上/下拖动。主
体部分可以是一个文本编辑器或图像编辑器,程序变量声明部分总是一个文本编辑器。

4.2.4.4 打印边界

如果在选项对话框中的 ‘Desktop’ 类别中选择了‘Printer borders ’ ,那么在工作区域


(‘Workspace’)的编辑器中显示垂直及水平的红色虚线。在菜单‘File’‘Printer Setup’ 中设
置打印机属性以及打印尺寸。如果未作任何设置,则使用缺省配置(Default.DFR和缺省
打印机)。如果在‘Documentation settings’ 中选择了‘New page for each object’ 或‘New
page for each sub-object’,则水平边界被拖动。最下方的边界不显示。

提示: 只有当放大系数为100%时,才能精确显示打印边界。
第4章 PROSYD 1131 的组件

4.2.4.5 注释

用户注释必须放在特殊符号 “(* ” 和 “*)” 之间, 例如:(* This is a comment.*)。


在所有文本类编辑器中都允许有注释,注释可以放在任意位置,包括变量声明区,IL
和ST语言编辑器,自定义数据类型。如果一个项目使用模板打印输出,在声明变量时输入
的注释,在每个变量后以基于文本编程的形式显示出来。
在FBD和LD图形编辑器中,每个网络都可以加入注释。方法是:选择要加注释的网络,
执行命令'Insert' 'Comment'。在CFC中, 专用注释POU能够放在任意位置。
在SFC中,可以在编辑step attributes时输入注释。
嵌套注释(Nested comments)功能可以在'Project''Options''Build ' 对话框中选择。
在线模式下,将鼠标指向某个变量并停留瞬间时间,该变量的类型、地址以及注释将
显示在一个工具提示条内。
变量声明编辑器。这个表格是按照卡片索引的方式安排的,它含有用于输入变量、输
出变量、局部变量和输入/输出变量的记录卡。每个变量都含有变量名(Name),地址
(Address),类型(Type),初始值(Initial),注释(Comment)等项。
激活此选项后,选项前面出现(√)。

4.2.4.6 制表宽度(Tab –Width)

在选项对话框的编辑器类别中的Tab-Width 栏中,可以定义编辑器制表宽度。缺省设
置为4个字符,字符的宽度取决于所选择的字体。

4.2.4.7 字体

在选项对话框的编辑器类别中,点击Font按钮,为所有 PROSYD 1131 编辑器选择


字体。字体尺寸是所有编辑操作的基本单位。因而,大字体的选择扩大了打印输出,甚至
扩大了每个PROSYD 1131 编辑器的布局。
当你执行该命令后,字体对话框打开,你可以选择字体,字型,字号。
字体设定对话框如下:
第4章 PROSYD 1131 的组件

4.2.4.8 标记

从选项对话框的编辑器类别中的标记Mark区 ,可以为图形编辑器(如:IL,FBD,
SFC,CFC)的当前选定标记设定为用虚线框(Dotted)、实线框(Line) 或填充框(Filled)
表示。
激活此选项后,选项前面出现(•)。

4.2.4.9 数值显示方式

从选项对话框的编辑器类别中的Bitvalues区 ,可以为监视状态下的数据(类型为
BYTE、WORD、DWROD)设定显示方式:十进制(Decimal),十六进制(Hexadecimal)
或二进制(Binary)。
激活此选项后,选项前面出现(•)

4.2.5 桌面选项
如果在选项对话框中选择此类别,将显示如下:
第4章 PROSYD 1131 的组件

工具栏(Tool bar): 工具栏位于菜单栏下方,包含菜单功能快速选择按钮。


状态栏: 显示在 PROSYD 1131 主画面下方。
在线安全模式: 在在线模式下,当执行命令 'Run'、'Stop'、'Reset'、'Toggle Breakpoint'、
'Single cycle'、'Write values'、'Force values' 或 'Release force' 后,将出现一个请求
确认对话框,要求对所选择的命令进行确认。
显示打印范围: 在各种编辑器窗口中,当前设置的打印范围用红色虚线标出。打印尺
寸依赖于打印机属性(纸张大小,方向)和打印机设置中的“Content” 。
F4 忽略警告:编辑完成后,按 F4 键,在信息窗口中只显示错误信息而忽略警告信
息。
语言: 选择菜单和对话框显示语言。
当一个选项被激活后,选项前面出现(√)。

4.2.6 颜色选项


第4章 PROSYD 1131 的组件
果在选项对话框中选择此类别,则出现以下对话框。

你可以编辑 PROSYD 1131 所设置的缺省颜色。能够对Line numbers(缺省:浅


灰色)、Breakpoint positions (深灰色)、Set breakpoint position(浅蓝色)、Current
position(红色)、Reached Positions(绿色)及Monitoring of Boolean(蓝色)
进行修改。
如果你选择其中一个指示按钮,颜色选择对话框将自动出现。
设置颜色对话框如下:

4.2.7 目录选项
如果在选项对话框中选择此类别,将出现以下对话框:
第4章 PROSYD 1131 的组件
在 Project 和 Common 区域中所输入的路径用于PROSYD 1131 搜索库文件
(libraries)、控制器配置文件(configuration)以及存储编译文件(compile),源代
码上载文件(Upload files)。 点击按钮(...),出现目录选择对话框。对于库文件和配置文
件,可以输入多个路径,中间用分号";"隔开。
在项目(Project)区中输入的信息伴随着这个项目存储。在公共(Common)区中
输入的信息存储在.ini文件中,适用于所有项目。
目标(Target)区用于显示在目标系统所需要的库文件和配置文件的路径,例如:目
标文件中的所有输入项。这些区域不能够编辑,但输入项可以选择并复制。
PROSYD 1131 通常先搜索‘Project’中的第一个路径,然后是‘Target System’中的路
径,最后是公共区‘Common’中的路径。如果有两个文件重名,那么将采用先搜索到的文
件。

4.2.8 日志选项
如果在选项对话框中选择此类别,将出现以下对话框:

在此对话框中,可以配置一个文件作为一个项目日志,用于记录所有的用户操作以及
在线模式过程中的内部处理。
如果打开一个现有项目(project),该项目还没有生成日志,则一个对话框打开并提
醒正在建立日志,它将在下一次登录过程后自动记录。
当存储项目时,日志作为一个二进制文件自动存储在项目目录下。如果你希望建立一
第4章 PROSYD 1131 的组件
个不同的目录,点击选项 ‘Directory for project logs:’ 并输入正确的目录。点击按钮

进入“Select Directory” 对话框。


日志文件被自动地以带有扩展名(.log)的项目名命名。在线记录(Online sessions)
的最大数量通过Maximum project log size 设置。如超出记录数量范围,最早的纪录
将被删除,以记录新数据。
日志功能可通过选项 Activate logging 启动或停止。
在Filter区域,你可以选择需要的记录:用户操作(User actions)、内部操作(Internal
actions)、状态改变(Status changes)、例外情况(Exceptions)。只有在此选定的操
作才能显示在记录窗口中并记录到日志文件中。
使用命令 'Window' 'Log' 可打开日志窗口。

4.2.9 编译选项
在选项对话框中选择此类别,将出现以下对话框:

当选择 Debugging 选项后,将产生调试代码,此代码能变得相当大,可确保


PROSYD 1131 所提供的调试功能(如:断点)的使用。当你关掉此选项后,项目的处
理变得更快,程序代码将会变少。此选项随项目存储。
当选择Replace constants 选项后,直接装载常量数值,在线模式下显示为绿色。
强制、写入、监控一个常数成为不可能。如果此选项被解除,常量将通过变量访问装入存
储单元中。
选择Nested comments 选项后,注释可以被放在其它注释内部。例如:
(*
a:=inst.out; (* to be checked *)
b:=b+1;
*)
此时,注释开始于第一个括号,但并不终止于“checked”后第一个括号,而是终止于最
后一个括号。
如果选项“Create binary file of the application”被启动,编译过程中,在项目目
录下将产生一个生成代码(boot project)的二进制映象文件。文件名为:<项目名>.bin 。
第4章 PROSYD 1131 的组件
命令'Online' 'Create Boot project' 在控制器中建立引导项目(boot project)。
激活此选项后,选项前面出现(√)
在 Number of data 中输入的数据,是为控制器中的项目所预留的存储字段。此存
储空间是必要的,以便当增加新变量时能够执行在线改变。在编译过程中,可能会产生信

“The global variables require too much storage;increase the number you have entered
here”。
为了加强对编译处理的控制, 你可以建立两个宏:Macro before compile 区内的宏
在编译处理之前执行;Macro after compile 区内的宏在编译处理之后执行。然而,下
列宏命令不能在此使用:新建文件(file new),打开文件(file open),关闭文件(file close),
文件另存(file save as),文件退出(file quit),在线(online),项目编译(project compile),
项目检查(project check),项目构造(project build),调试(debug),观察列表(watchlist)。
构造选项中的所有设定都随项目存储
激活某选项后,此选项前面出现(√)。

4.2.10 密码(Passwords)
如果在选项对话框中选择了此类别,将出现以下对话框。

使用一个密码来保护你的文件,防止未经授权的用户打开或更改。
在 Password 区域输入密码,输入的字符在密码区内显示为星号(*) 。你还需在确
认密码区(Confirm Password )重新输入密码,并点击OK。如显示如下信息:
“The password does not agree with the confirmation”,
表示在两个区域内所输入的密码不相同。这种情况下,需要重新输入。
当你存储文件后重新打开时,会出现一个对话框并要求你输入密码。此项目只有在正
确输入密码的情况下才能打开,否则 PROSYD 1131 报告:
“The password is not correct.”
同打开文件一样,你还可以使用密码以保护你的文件不被更改。方法是:在写保护密
码区(Write Protection Password)输入密码,并在下面的区域重新输入。
写保护文件可以在不使用密码的情况下被打开,如果在打开文件时,PROSYD 1131
要求输入写保护密码,你只需按一下 Cancel 键。 你可以执行编译、下载、仿真等操作,
第4章 PROSYD 1131 的组件
但不能更改它。
当然,记住这两个密码是很重要的,一旦忘掉密码后,请立即与你的供应商联系。
密码选项的设置是随项目存储的。
为了创建不同的访问权限,你可以定义用户组和用户组密码“Passwords for user
groups”。

4.2.11 源代码下载(Sourcedownload)
当选择此类别后,将出现以下对话框。

你可以选择将项目装入控制系统的时机(Timing)和范围(Extent)。选项
Sourcecode only 只装载PROSYD 1131 文件;选项 All files 可装载相关联的库文
件、可视化位图文件、配置文件等所有文件。
设置选项 Implicit at load,当执行 'Online''Download' 命令时,允许所选择的
文件范围自动装入控制器系统。
设置选项 Notice at load ,当执行'Online''Download' 命令时会出现一个对话框
"Do you want to write the source code into the controller system?",按 Yes,所选择的
文件范围将自动装入控制器系统中;你也可以选择 No 退出。
设置选项On demand,当执行命令'Online''Sourcecode download' 时,所选择
的文件范围被装入控制器系统中。
储存在控制器系统中的项目程序,可以通过 'File' 'Open' 命令,按 Open project from
PLC 区域中的 PLC 按钮,从 PLC 中重新获得项目程序。

4.2.12 符号配置选项(Symbol Configuration)


当前对话框用于配置符号文件(文本文件*.sym 和二进制文件*.sdb)。这些文件用
于通过符号与控制器进行数据交换,也可用于OPC 或 Gateway DDE 服务器。
如选择 Create symbol entries 选项,在编辑项目时,文件中项目变量的输入符号自
动生成。

提示:
如果选项‘Symbol config from INI-file’被激活,那么符号配置将从PROSYD 1131.ini 文
第4章 PROSYD 1131 的组件
件或由它定义的其它ini文件中读取。(在这种情况下,不能编辑PROSYD 1131中的‘Set
object attributes’ 对话框)。

如果选项‘Symbol config from INI-file’未被激活,输入符号将按照‘Set object


attributes’对话框中的设置生成。使用Configure symbol file 按钮获得。
设定对象属性对话框 (在符号配置类别中)

使用树型结构选择编辑器选择POU并在对话框下方用鼠标选择需要的选项。激活的选
项前面显示一个标记。如下选项可以设置:
输出对象变量(Export variables of object): 选定对象的变量输出到一符号文件
中。
只有Export variables of object 选项被激活后,以下选项才能有效。
输出数据入口(Export data entries): 为在全局变量中的结构体对象和数组对象
创建访问入口。
输出结构单元(Export structure components): 为结构体对象的每个变量单元
创建一个独立的入口。
输出数组入口(Export array entries): 为数组对象的每个变量单元创建一个独立
的入口。
允许写入(Write access): 对象变量可被OPC服务器更改。
一旦完成对当前POU的选项设置,可以选择其它POU并给予一个选项配置。任意数量
的POU都可以被选择并一个接一个地设定。选择OK关闭对话框。

4.2.13 ‘宏’选项(Options for 'Macros')


如在选项对话框中选择此类别,出现如下对话框。
第4章 PROSYD 1131 的组件

在此对话框中,可使用PROSYD 1131程序中的批处理命令定义宏指令。通过菜单中
'Edit' 'Macros' 命令调用。
在Name区域,为将生成的宏输入一个名字。按 New 按钮,这个名字被传入Macro
区域内并被标记为已选用。对于已选定的一个宏,可用<Del>键删除;或在Name区域输
入一个新名字并按Rename 键进行更改。
在命令(Commands)编辑区可以定义或编辑新生成的或已选择的宏命令。所有
PROSYD 1131 的批处理命令都可以使用。你可以按 Help 键获得一份命令列表。
按<Ctrl><Enter>键开始一个新的命令行。使用鼠标右键打开一个包括文本编辑功能
的快捷菜单。通过引号可将命令元件编组。
Menu 区域用于定义显示在'Edit' 'Macros'菜单中显示的宏。为了使用单个字母作为热
键,只需在字母前加上符号 '&',例如:名字"Ma&cro 1" 所生成的菜单登录为 "Macro 1"。
点击 OK,关闭宏定义对话框。
在'Edit' 'Macros'菜单中,宏按照它们所定义的顺序显示。
当执行一个菜单命令时,首先进行测试宏。

4.3 项目管理
在菜单'File' 和 'Project' 中可找到关于整个项目的所有命令。

4.3.1 ‘File’ 'New'

符号:
用此命令可以创建一个名为"Untitled" 的空项目。当保存时,此名字必须更改。

4.3.2 'File' 'Open'

符号:
用此命令可打开一个已存在的项目。如果该项目被打开并更改,则PROSYD 1131 会
询问是否保存。
第4章 PROSYD 1131 的组件
显示打开文件对话框,选择项目名(扩展名*.pro)或库文件名(扩展名*.lib)。所选
的文件必须是已经存在的。在命令"Open"中创建新项目是不可能的。
如需从PLC中上载一个项目程序,可在Open project from PLC 中点击 PLC 按钮。如
果还没有和PLC建立连接,将显示通讯参数对话框用于设置通讯参数;如果已经建立了连
接,系统将检查在计算机硬盘上是否有重名的项目存在。在有重名项目存在的情况下,你
会收到对话框 Load the project from the controller, 在此你能够决定是否替换本地文件。
(这个顺序与 'Online' 'Load source code' 的顺序相反,该项目源文件储存在控制器中。
不要与'Create Boot project' 相混淆。

提示:
请注意,当你从PLC中上载一个项目程序至本地目录时,应为其命名一个新名字,否
则它将是一个未命名文件。

如果PLC中没有程序,将出现错误信息。
打开文件对话框如下:

最近打开的文件列于命令 'File' 'Exit' 之下,任选一个项目,便可打开。


如果对于某个项目已定义了密码和用户组,则会弹出一个对话框用于输入密码。

4.3.3 'File' 'Close'


用此命令关闭当前已打开的项目。如果此项目已经被改动过,则PROSYD 1131 会
询问是否保存这些改动。
如果当前要保存的项目名为"Untitled",则必须为其输入一个新名字。(参见 'File'
'Save as')。
第4章 PROSYD 1131 的组件

4.3.4 'File' 'Save'

符号: 快捷键: <Ctrl>+<S>


用此命令保存项目中的任何改动。如果被保存的项目名为"Untitled",则必须为其输入
一个新名字。(参见'File' 'Save as')。

4.3.5 'File' 'Save as'


用此命令可将当前项目保存到另一个文件中或作为一个库文件,而不改变原项目文件。
执行此命令后出现一个对话框。你可以选择一个已经存在的文件名,或输入一个新文
件名,并为其选择一个文件类型。
另存为(Save as)对话框如下:

如果项目被另存为一个新文件名,则文件类型为PROSYD 1131 Project (*.pro)。


如果你所选择的文件类型为Project Version 1.5 (*.pro)、Project Version 2.0
(*.pro) 或Project Version 2.1(*.pro),则当前项目按照此版本格式存储,在版本2.2
中的所生成的一些特殊数据会丢失,然而该项目可在版本1.5 、2.0 、2.1中运行。
你可以将当前项目存储为一个库文件,以便于在其它项目中调用。如果你已经在
PROSYD 1131 中编写了POU程序,选择文件类型 Internal library (*.lib)。
如果你想在其它语言(例如:C语言)中执行POU程序,选择文件类型External library
(*.lib)。这意味着存储另一个文件名相同的文件,其扩展名为 "*.h"。该文件创建为C语
言头文件(C header file), 其中含有所有POU声明、数据类型和全局变量。如果使用外
部库文件,在仿真模式下,PROSYD 1131 中的POU运算将被执行。在与实际硬件连接
后,用C语言写成的运算可被执行。
点击 OK, 当前项目按指定名称存储。如果这个新的文件名已经存在,则你将会被询
问是否覆盖此文件。
当作为一个库文件存储时,整个项目被编译。如果产生错误,你将被告知必须确保项
目的正确性以便创建一个库。否则该项目不能作为一个库文件存储。

4.3.6 ‘File’ 'Save/Mail Archive'


此命令用于设立并创建一个项目归档文件。所有 PROSYD 1131 项目中所涉及并使
第4章 PROSYD 1131 的组件
用的文件被打包到一个压缩文件中。 该压缩文件可以存储或直接以电子邮件的形式发送。
此命令特别适用于为所有项目的相关文件做进一步的归档。
此命令执行后,出现如下对话框。

在此你可以定义需要添加到归档压缩文件中的数据类型:通过用鼠标点击选择框或双
击文件类型名进行选择或删除。如果某种文件类型标有 ,则所有此类型的文件都被添
加到压缩文件中;如果标有 ,则所有此类文件都不被存储。如只需选择某种类型文件
中的某单个文件,请点击相应的 Details 键,打开Details 对话框。
第4章 PROSYD 1131 的组件

在此对话框中,可以选择/取消文件:用 Select All 按钮选择列表中的所有文件;用


Select None按钮不选择列表中的任何文件。用鼠标点击标记框可选择/取消单个文件,
也可通过双击列表项或当列表项高亮后按空格键进行选择或取消。
按 Save 键关闭对话框并保存新设置。
在主对话框中,如果在某类型对话框下,不是所有的文件都能被选择,则此种类型的
标记框显示为灰色背景 。
下表中列出了可以添加到压缩文件中的文件类型。
项目文件(Project File) 项目名字.pro (PROSYD 1131 项目文件)
引 用 库 文 件 ( Referenced
*.lib, *.obj, *.hex (库文件及相应的对象文件和十六进制文件)
Libraries)
符号文件(Symbol Files) *.sdb, *.sym (符号信息)
编 译 信 息 ( Compile *.ci (编译信息), *.ri (下载/参考信息),<temp>.* (临时编译
Information) 及下载的文件) 也可用于仿真
日志(Log) *.log (项目日志文件)

INI文件 PROSYD 1131.ini


用于PLC配置的文件 (配置文件,硬件文件,图标文件等)。例
配置文件(Configuration files)
如: *.cfg, *.con, *.eds, *.dib, *.ico ....
*.trg (所有已安装目标的二进制格式文件)
目标文件Target Files
*.txt (所有已安装目标的文本格式文件)
Registry.reg (自动化联盟,网关与PLC,包含下列子目录:
注册登录(Registry Entries HKEY_LOCAL_MACHINE\SOFTWARE\PROSYD 1131
HKEY_LOCAL_MACHINE\SOFTWARE\AutomationAlliance"
位图文件(Bitmap Files) *.bmp (用于POU及可视化显示)
Gateway.exe, GatewayDDE.exe, GClient.dll,GDrvBase.dll,
路由文件(Gateway Files) GDrvStd.dll, GHandle.dll, GSymbol.dll,GUtil.dll, 在GATEWAY
目录下有更多的DDL文件。

如需将其它文件也添加到压缩文件中,按Other Files按钮,显示‘Other files’ 对话框,


第4章 PROSYD 1131 的组件
建立需要的文件列表。

点击 Add 按钮,打开一个标准对话框,选择一个文件,按Open。此文件将被添加到
‘Other files’ 对话框列表中。重复这个步骤可添加所有需要的文件。点击Remove,从列
表中删除文件。选择完成后,点击OK 关闭对话框。
如需在档案压缩文件中添加Readme文件,按 Comment,显示文本对话框,可以输
入任何内容。点击 OK,关闭对话框。当创建压缩文件时即可加入readme.txt。
注释可以包含创建信息及PROSYD 1131版本信息。
所有选项选择完成后,在主对话框中
z Save… 创建并存储档案压缩文件:打开存储文件标准对话框,输入文件存储路
径。压缩文件缺省名为<projectname>.zip。用Save 按钮确认开始创建压缩文
件,在处理过程中同时显示当前处理状态,在信息窗口中可以显示进行的步骤。
z Mail… 创建一个临时压缩文件,并将此文件作为电子邮件的附件。此功能只有在
系统安装了MAPI(信息应用程序接口)后才能工作。否则会产生一故障信息。在
建立电子邮件的过程中,处理状态及步骤显示在信息窗口中。处理结束后,临时
压缩文件将被自动删除。
z Cancel 用于取消操作,不创建压缩文档。

4.3.7 ‘File’ 'Print'


快捷键: <Ctrl>+<P>
使用此命令可将活动窗口中的内容打印出来。
选择此命令后,显示打印对话框。
第4章 PROSYD 1131 的组件

选择需要的功能选项、配置打印机、点击OK。当前窗口被打印出来。颜色输出对所有
编辑器都有效。
你可以设定打印份数和打印文件版本。
使用Properties按钮,打开设定打印机对话框。
使用用命令'File' 'PrinterSetup',可以定义打印输出的格式。
打印过程中,一个对话框显示已经打印的页数。如关闭此对话框,下一页打印完成后
将停止打印。
使用命令'Project' 'Document',可将整个项目编制成文档。
如果你想为你的项目创建一个文本框架以用于项目中所有变量的注释,那么打开全局
变量列表并执行命令'Extras' 'Make docuframe file'。

4.3.8 ‘File’ 'Printer setup'


用此命令可以确定打印页的输出格式。选择此命令出现以下对话框。

在 File 区输入具有扩展名“.dfr” 的文件名,该文件含有页格式。缺省设置文件为


第4章 PROSYD 1131 的组件
DEFAULT.DFR 。
如果需要改变当前设置,使用 Browse 按钮,在目录树中浏览并选取需要的文件。
还可以选择“new page for each object” 及“for each subobject” 选项。使用Printer
Setup 按钮打开打印机设置窗口。
如果点击Edit 按钮,显示设定页面设置框。在此可以定义页号、日期、文件名和POU
名,也可在页面上添加图形及文本打印范围。

使用菜单项 'Insert' 'Placeholder' 并从五种占位符(Page, POU name, File


name, Date, Content)中任选一些占位符添加到页面设置中,用鼠标左键拖动页面设置
中相应的占位符框,当打印输出时,页面显示如下:
命令 占位符 结果
Page {Page} 显示当前页号
POU name {POU Name} 显示POU名
File name {File Name} 显示项目名
Date {Date} 显示当前日期
Contents {Contents} 显示POU正文
此外,使用 'Insert' 'Bitmap' ,可在页面中插入一个位图(例如:公司标志)。用
鼠标画一个方框,插入其它可视化图形。
如果模板被更改,当此窗口关闭时,PROSYD 1131 程序会询问是否存储改变。

4.3.9 ‘File’ 'Exit'


快捷键: <Alt>+<F4>
用此命令从PROSYD 1131程序中退出。
如果有一个打开着的项目,它将象执行'File' 'Save'命令一样被关闭。

4.3.10 ‘Project’ 'Build'


快捷键: <F11>
第4章 PROSYD 1131 的组件
命令 'Project' 'Build' 用于编译项目。编译处理是基本渐进式的,也就是说只有变化了
的POU才会被编译。如果首先执行'Project' 'Clear all' 命令,也可进行非渐进式编译。
对于支持在线更改的目标系统,在编译后,将要在下一次下载时将被装入到控制器中
的所有POU在对象管理器中用蓝色箭头标记。
如果控制器通过 'Online' 'Login' 连接,则'Project' 'Build' 编译处理自动运行。
编译过程中,信息窗口会自动打开,显示编译处理的进程和编译中出现的错误及警告。
错误和警告用数字标记出来。用F1键可以得到当前所选错误的更多信息。


见在线帮助章节中的错误信息和警告列表。
如果在选项对话框中的 Load & Save 类别中选择了Save before compilation,则项目
在编译前被保存。

提示:
交叉引用(Cross references)在编译过程中生成并随编译信息一同存储。为了能够在
‘Project’ ‘Check’ 菜单中使用命令'Show Call Tree'、'Show Cross Reference'、'Unused
Variables'、'Concurrent Access' 及'Multiple Write Access on output',项目在改动后
必须重新编译。

4.3.11 ‘Project’ 'Rebuild all'


'Project' 'Rebuild all' 不同于渐进式编译('Project' 'Buildl' ),项目被整体编译。下
载信息不会丢失。

4.3.12 'Project' 'Clean all'


使用此命令后,最后一次的下载信息和编译信息都被清除。
选择此命令后,显示一个对话框,报告如不进行新的下载将不能执行(登陆)Login
操作。此时,可以选择退出或确认。

提示:
执行'Clean all'命令后, 如果记录项目最后一次下载信息的 *.ri 文件保存在项目目录外,则在
登录操作前装载此文件,该项目才能再次登录到PLC。
第4章 PROSYD 1131 的组件

4.3.13 ‘Project’ 'Load Download-Information'


如果下载信息已经存入到非项目目录下,则用此命令可重新装入项目的下载信息。选
择此命令后,打开‘File Open’标准对话框。
在每次下载中,下载信息被自动存储到一个文件中,其文件名为<project
name><target identifier>.ri,并自动放置到项目目录中。当打开项目并登录时,该文件
被装入用于检测已改变的POU。当在线更改时只有这些POU被装入PLC。
但是,如果项目目录中的 *.ri 文件被命令'Project' 'Clean all' 删除了,那么,在你
已经在其他目录中保存了*.ri 文件情况下,只有重新装入下载信息。

4.3.14 ‘Project’ 'Translate into another language'


此菜单项用于将当前项目文件转换成其他语言。通过读取从该项目中所生成的转换文
件来完成,并借助于文本编辑器的帮助将其转换为需要的语言。

4.3.14.1 创建转换文件

此命令位于'Project' 'Translate into another language' 菜单内。创建转换文件对话框


如下:

在Translation file 区域, 输入文件要存储的路径。缺省文件扩展名为 *.tlt,为文本


文件。
如果已存在一个需要处理的转换文件,可直接输入此文件路径或使用Search 键打开
标准Windows 文件选择对话框。
以下项目信息可以在创建或更改转换文件时加入到文件中:Names (例如:在对象管
理器中的POU名称),Identifiers, Strings, Comments, Visualisation texts 及
Position information 。
如果选择了相应的选项,当前项目中的信息将作为语言符号输出到一个新建的转换文
第4章 PROSYD 1131 的组件
本中或添加到一个已存在的文件中。如果某个选项未选,则此类别的相关信息,无论它来
自于哪个项目,都将从转换文件中删除。
可视化元件中的"Text"和 "Tooltip-Text" 被看作是可视文本。

提示:
对于可视化文本(可视化元件中的‘Text' 和‘Text for Tooltip'),在可视化元件配置对话
框中,必须用两个的"#" 标著 (例如:#text#),以便于传送到转换文件。这些文本在
使用'Project' 'Translate into other languages'命令后并不能转换!在线模式下,如果
在'Extras' 'Settings' 对话框中输入相应的语言,可视元件才显示其他语言。

位置信息:包含文件路径,POU和语言符号的位置,以便于转换。含有三种选项。
'None': 不产生位置信息。
'First appearance': 单元首次出现的位置被添加到转换翻译文件中。
'All': 对应元件的所有位置都被添加到转换文件中
如果一个较早创建的转换文件所包含的位置信息比当前所选文件要多,不管该文件是
从哪一个项目生成的,都将会被删节或删除。

提示:
即使用户已经在创建转换文件对话框中的“Position Information” 下选择了"All",但对
于每个元件(语言符号)最多可以生成64个位置说明。

覆盖现有的(Overwrite existing): 转换文件中现有的位置信息经过处理后将被覆


盖,无论它是由哪个项目创建的。
目标语言(Target languages): 此列表包含转换文件中的所有语言标识符,在
‘Create translation file’对话框中加入的语言标识符。
排除(Exclude)按钮打开‘Exclude libraries’对话框。在此可以选择项目中所包含的库
文件,其识别信息没有传送到转换文件中。操作方法:用鼠标在左边的Included libraries
中选择库文件,并用Add按钮将其放到右边的Excluded libraries 中。同样,使用
Remove按钮也可将已经添加的条目删除。用OK按钮保存设置并关闭对话框。
转换文件排除库文件信息对话框如下:
第4章 PROSYD 1131 的组件

用 Add 按钮打开 'Add Target Language' 对话框。


添加目标语言对话框如下:

语言识别符必须输入到编辑区内,且在开头和结尾不能含有空格符或变音符(ä, ö,
ü) 。
点击OK按钮关闭‘Add Target Language’对话框,新的目标语言显示在语言列表中。
用Remove 按钮从列表中移除一选定条目。
用OK按钮确认“Create translation file”对话框以生成一个转换文件。
如果转换文件名已经存在,将出现以下确认信息,可选择Yes或No:
" The specified translation file already exists. It will now be altered and abackup
copy of the existing file will be created. Do you want to continue?"
选 No 返回‘Create translation file’对话框,选Yes,将在同一路径下为现有转换文件
创建一个名为"Backup_of_<translation file>.xlt" 的备份文件,相应的转换文件将依照已
输入的选项进行更改。
第4章 PROSYD 1131 的组件
当创建转换文件时,将产生以下情况:
对每种新的目标语言,都产生一个占位符(“##TODO”)用于语言符号的显示。
如果处理一个现有的转换文件,显示在转换文件中的语言条目(不是目标语言列表中
包含的)被删除,不管是由哪个项目创建的。
参见‘Editing of the translation file’,如何编辑转换文件。

4.3.14.2 编辑转换文件

转换文件必须作为一个文本文件打开并存储。符号 ## 为关键字。文件中##TODO-
占位符能通过有效转换来替换。对每种语言符号都产生一段文字,以##NAME_ITEM开始
并以##END_NAME_ITEM结束(注释对应 ##COMMENT_ITEM 等.)。
下面为一转换文件的段落示例,用于处理项目ST_Visu中一个POU的名称.。目标语言
为英文English和法文French。在这个例子中,将转换的项目元件的位置信息已经被添加。
转换前:
##NAME_ITEM
[D:\ PROSYD 1131\projects\Bspdt_22.pro::ST_Visualisierung::0]
ST_Visualisierung
##English :: ##TODO
##French :: ##TODO
##END_NAME_ITEM

在转换后:##TODOs已经被'Visualisierung'的相关英文和法文单词所替换:
##NAME_ITEM
[D:\ PROSYD 1131\projects\Bspdt_22.pro::ST_Visualisierung::0]
ST_Visualisierung
##English :: ST_Visualization
##French :: ST_Visu
##END_NAME_ITEM

请检查确认转换标识符和名字保持正确的标准,字符串和注释放在括号内。

提示:
没有详细的了解请不要修改转换文件中的以下部分:语言块(Language block),标

块(Flag block),位置信息(Position information),原文本(Original texts)。

4.3.14.3 将项目转换(为其他语言)

执行命令'Project' 'Translate into Another Language',打开'Translate Project into


Another Language' 对话框。
第4章 PROSYD 1131 的组件

如果选用适当的转换文件,当前项目可转换成为其它语言。

提示:
如果你想保存使用最初的语言创建的项目,则必须在转换前将项目以其它名字另存。
转换过程不能被取消。

在 Translation file区域, 输入所要使用的转换文件路径。按 Search 按钮进入标准


的Windows文件选择对话框。
Target language 区域包含在转换文件中所输入的语言标识符列表,从这个列表中
可以选择所需要的目标语言。
按 OK,在指定转换文件的帮助下,将当前项目转换为需要的语言。在转换过程中,
显示进程对话框以及错误信息(在产生错误的情况下)。转换完成后,对话框和所有项目
的编辑窗口都将关闭。
按 Cancel,在当前项目没有进行修改的情况下关闭对话框。
如果转换文件包含错误条目,按 OK 后,显示错误信息并指出文件路径及错误行。例
如:"[C:\Programs\PROSYD 1131\projects\visu.tlt (78)]; Translation text expected"

4.3.15 ‘Project’ 'Document'


此命令用于打印全部的项目文本。一套完整的文件包含以下部分:
• POU
• 文件内容
• 数据类型,
• 可视单元
• 资源,全局变量,变量配置,采样轨迹,PLC配置,任务配置,监视及配方管理器
• POU 树型调用结构及数据类型
• 参照表
最后两条必须在项目没有错误情况下建立。
第4章 PROSYD 1131 的组件

对话框中只有蓝色高亮显示的部分被打印。
如果你想选择整个项目,在第一行选择项目名。
另一方面,如果你只想选择其中一个对象,只需点击相应的对象或使用上下方向键移
动虚框至相应的对象上。符号前有加号的对象为对象组,包含其他对象。点击加号,打开
对象组,再点击减号关闭对象组。当你选择对象组后,其包含的所有对象都被选定。用
<Shift>键可以成组选择对象,用<Ctrl> 键可以选择多个单独的对象。
当你完成选择后,点击OK。显示打印对话框,你可以用命令'File' 'Printer setup' 定义
打印页面布置。

4.3.16 ‘Project’ 'Export'


PROSYD 1131可将项目导出或导入。你可以在不同的IEC编程系统中交换程序。
对采用IL,ST,SFC(IEC 1131-3 通用元件格式)编写的POU有标准的交换格式;对采
用LD,FBD及其它方式编写的POU,PROSYD 1131 有其自己的文档生成格式(因为在
IEC 1131- 3中没有这种文本格式)。
选定的对象被写到一个ASCII 文件中。
POU, 数据类型, 可视化组件及资源都可以被导出。另外,库管理器中用于库文件的
连接信息也可以被导出(不是库本身)。
第4章 PROSYD 1131 的组件

提示:
如果图形编辑器中的注释包含一个单引号,当重新导入FBD或LD导出文件时,会产生一个错误,
因为单引号将被解释为一个字符串的开始。

在对话框中,一旦已做了选定后(与'Project' 'Document' 的方式相同),你便可以决


定是否将选定的部分导入到一个文件中,或多个文件中(每个对象对应一个文件)。选择
或取消One file for each object 功能选项并按OK。显示存储文件对话框,输入具有扩
展名“.exp”的文件名,该文件名分别对应对象导出文件的存放目录,对象导出文件名为<
对象名.exp>。

4.3.17 ‘Project’ 'Import'


在对话框中选择要打开的导出文件。
该文件将被导入到当前项目中。如果项目中已含有同名的对象,将弹出一个询问对话
框:"Do you want to replace it?" (“你想要替换它吗?”),如果你回答Yes, 则项目中
的对象被导入文件中的对象所替换;如果回答NO , 则新对象名将按照在其名称后面添加
一个下划线和一个数字("_0", "_1", ..)来接收。选择Yes, all 或No, all 用于对所有对
象进行操作。
如果导入信息链接至一个库,该库将被装载并添加到库管理器列表的最后一行。如果
该库已经被装入到项目中,它将不再被重新装入。然而,如果正在被导入的导出文件库显
示具有不同的库文件存储时间,则在库管理器中,库文件名将使用一个"*" 标记(例如:
standard.lib*30.3.99 11:30:14)。如果找不到库文件,显示信息对话框 “Cannot find
library {<path>\}<name> <date> <time>” (“不能找到库文件{<path>\}<name>
<date> <time>”)。
导入操作在信息窗口中记录。

4.3.18 ‘Project’ 'Merge'


使用此命令可以合并对象(POU, 数据类型,可视化组件,资源),以及从其它项目中输
入到你的项目中的库链接。
执行此命令后,显示打开文件标准对话框。选定一个文件后,显示一个对话框,用于
选择所需要的对象。选择方式同'Project' 'Document' 中的描述。
如果项目中已含有相同的对象名,则通过在其后添加一个下划线和一个数字的方式接
收新对象("_1", "_2", ..)。

4.3.19 ‘Project’ 'Compare'


此命令用于比较两个项目,或一个项目的当前版本与上一次存储的版本。
概述:
名字'actual project'一般用于当前运行中的项目,名字'reference project' 用于被比较
的项目。
执行此命令后,实际项目和参考项目以比较模式(‘compare mode’)显示在双窗口中。
存在差别的POU名用颜色标记出来。在POU编辑器中,POU的内容也将以比较的方式显示
出来。在比较模式下所显示的结果和方法取决于:1. 激活哪些用于比较的筛选方式,在
第4章 PROSYD 1131 的组件
比较过程中,是否考虑空白部分和注释部分。2. 行、网络或元素内部的改变是否被认为
插入一个全新的POU。
对于单个差别(single diffences)或‘相同标记’(‘all equally marked’)差别的参考项目的
版本可以被接收。接收意味着此参考项目的版本被实际项目所接收。

提示:
在比较模式下(参见状态栏:COMPARE),项目不能被编辑!

执行比较:
执行'Project' 'Compare' 命令后,‘Project Comparison’对话框打开:

在Project to compare区域输入参考项目名。如果你想使用标准对话框打开一个项

目,可直接按 。如果你输入的是实际项目名,项目的当前版本将与最后存储的版本相
比较。
可以选择下列关于比较的选项:
忽略空白区(Ignore whitespaces):对于空白区数量的不同,检测结果为无差别。
忽略注释(Ignore comments): 不检测注释的不同。
差别对比(Oppose differences): 如果一个POU中的一行、一个网络或一个元素已
经被改变了,在比较模式下,它将在双窗口中直接对应于另一项目进行显示(标记为红色,
见下图)。如果没有选中此选项,相应的行在参考项目中将显示为 'deleted' ,在实际项
目中作为显示为 'inserted'(兰/绿 见下图)。也就是说它将不会直接相对于另一项目中
的同一行进行显示。
例如: 行0005 在实际项目(左侧)中已被更改。
第4章 PROSYD 1131 的组件

点击OK,关闭项目比较对话框,按照设置执行比较。
显示比较结果:
比较模式下项目概述:
项目比较执行后,打开一个双窗口显示比较模式下的项目。标题栏中含项目路“Project
comparison <path of actual project>-<path of reference project>”。实际项目显示在窗
口的左半部分,参考项目显示在右半部分。每个结构树在最高位置显示项目名,除此之外,
它还符合对象管理结构。

例如,比较模式下的项目。
POU中不同的部分,在结构树中通过阴影、特定颜色并最终通过附加文本表示:
红色: 已被更改的单元在两个分开的窗口中都显示为红色。
蓝色: 仅在比较项目中有效的单元;在实际项目结构概览中的对应位置插入空行。
绿色: 仅在实际项目中有效的单元;在比较项目结构概览中的对应位置插入空行。
黑色: 用于无差别检测单元。
"(Pproperties change)": 如果检测到POU的属性不同,此文字将附加到项目结构树
中POU名上。
"(Access rights changed)": 如果检测到POU访问权限不同,此文字将附加到项目
结构树中POU名上。
比较模式下POU 内容:
在结构树中双击因为更改被标为红色的一行,打开POU。
如果它是一个文本或图形编辑POU,将在双窗口中打开。参考项目中的内容(右侧)
第4章 PROSYD 1131 的组件
对应实际项目内容(左侧)而放置。在比较过程中被识别的最小单位是一个行(ST,IL)、
一个网络(FBD,LD)或一个元件(CFC,SFC)。颜色定义同上述项目概览中的描述。
例如:比较模式下的POU。

如果两者差别不是一个可编辑的POU,而是任务配置或目标设定等等,则实际项目和
参考项目中的POU版本可通过双击项目结构中各自的行而显示在两个分开的窗口中。对于
这些项目,不显示更详细的POU 差异。
在比较模式下工作(菜单'Extras', Context menu):
如果指针指向双窗口中显示具有差别的行上,按右键显示菜单'Extras' ,根据是工作
在项目概览下或在POU下的不同,可提供以下命令选项。

4.3.19.1 ‘Extras’ 'Next difference'

指针指向下一个具有差别的单元上(项目概览中的行,POU中的行/网络/元件)。

4.3.19.2 ‘Extras’ 'Previous difference'

指针指向上一个具有差别的单元上(项目概览中的行,POU中的行/网络/元件)。
第4章 PROSYD 1131 的组件

4.3.19.3 ‘Extras’ 'Accept change'

用于所有连续的单元(差别标记的排序相同),参考项目版本将被实际项目所接收。
对应单元(具有相应颜色)将显示在窗口左侧。如果一个单元显示为红色(表示经过修改),
则被接收的单元在实际项目中显示为黄色。

4.3.19.4 ‘Extras’ 'Accept changed item'

只有指针选定的单元(行,网络,元件)才被接收。相应的单元显示(具有相应颜色)
在窗口左侧。如果该单元显示为红色(表示经过修改),则被接收的单元在实际项目中显
示为黄色。

4.3.19.5 ‘Extras’ 'Accept properties'

实际项目将接收指针所指POU的与在参考项目中的设置的对象属性。

4.3.19.6 ‘Extras’ 'Accept access rights'

仅用于项目概览对话框:实际项目将接收指针所指POU的在参考项目中的设置的对象
访问权限。

4.3.20 ‘Project’ 'Project info'


使用该命令可以存储项目信息。当执行命令后,显示如下:
项目信息对话框:
·文件名
·路径
·最近改动时间 (更改日期)
这些信息不能更改。

此外,你还可以添加以下信息。
·项目标题,
·作者名,
·版本号,
·项目描述
此信息是可选的。当点击 Statistics 按钮后,可获得项目的的统计信息。
该信息为最后一次编译时所记录的,如:POU 数量,数据类型,全局及局部变量。
例如:项目统计信息框。
第4章 PROSYD 1131 的组件

如果在Optional对话框的Load & Save 类别中选择了Ask for project info ,则当


存储一个新项目或将某个项目另存为一个新名字时,项目信息自动被调用。

4.3.21 ‘Project’ 'Global Search'


用此命令可以在POU、数据类型或全局变量对象中查找某个文本的位置。
输入此命令打开一个对话框,选择需要的对象。选择方式与'Project' 'Document' 相同。

选择OK。打开标准搜索对话框。通过菜单栏中的图标 调用‘全局查找’('Global
第4章 PROSYD 1131 的组件
Search')命令;查找操作将在项目中所有可搜索的部分中自动进行。在Search for 区域
的复选框中可以选择最新被输入的查找字符串。如果在一个对象中找到该字符串,该对象
将被装载到在相应的编辑器或库管理器中,并定位到字符串所在位置。文本的显示以及搜
索并查找下一个文本的功能与'Edit' 'Search'命令相似。
如果选择In message window 按钮, 在所选对象中的所有查到的符号位置信息将
以表格形式一行一行地列于信息窗口中。最后显示所查到位置的数量。
如果报告窗口处于关闭状态,它将被自动打开。对于所找到的每一个位置信息,将显
示如下内容。
·对象名
·在POU变量声明区或工作区内的位置
·行及网络个数
·文本编辑器中的整行
·图形编辑器中的整个文本元件
搜索结果显示窗口如下:

如果你在信息显示窗口中用鼠标双击其中一行或按<Enter>按钮,相应的对象被装载
到编辑器中并打开,对象中相关的行被标记。你可以使用功能键<F4> 和 <Shift>+<F4>
在显示行之间快速切换。

4.3.22 ‘Project’ 'Global replace'


用此命令可以在POU、数据类型或全局变量对象中查找某个文本的位置并用另一文本
替换它。其执行方式与'Project' 'Global Search' 或 'Edit' 'Replace'相同。然而,不能选择
库文件,也不能在信息窗口中显示。
结果将显示在信息窗口中。

4.3.23 ‘Project’ 'Check'


这些功能用于检测最近编译的状态。因此,在检测之前,该项目必须通过至少一次的
无误编译; 如果有错误,菜单条目将显示为灰色。

4.3.23.1 未使用变量(Unused Variables)

在 ‘Project’ ‘Check’菜单中,此功能用于查找程序中已声明但未被使用的变量。它们依
据POU名或行被输出,例如:PLC_PRG (4) - var1。在库文件中的变量不能被检查。
检查结果显示在信息窗口中。
第4章 PROSYD 1131 的组件

4.3.23.2 重叠存储区(Overlapping memory areas)

在 ‘Project ’ ‘Check’菜单中,此功能用于测试当通过"AT" 声明分配变量时,在存储区


内是否产生地址重叠。例如,当分配变量"var1 AT%QB21: INT" 和 "var2 AT %QD5:
DWORD"时已产生了重叠,因为它们都使用了字节21。输出结果显示如下:
以下变量使用了%QB21::
PLC_PRG (3): var1 AT %QB21
PLC_PRG (7): var2 AT %QD5

结果显示在信息窗口中。

4.3.23.3 访问冲突(Access conflict)

在 ‘Project’ ‘Check’菜单中,此功能用于查找在多个任务中同时被访问的存储区。不区
分读与写。例如:
%MB28 在以下任务中被使用:
Task1 Œ PLC_PRG (6): %MB28 [只读通道]
Task2 Œ POU1.ACTION (1) %MB28 [写通道]
结果显示在信息窗口中。

4.3.23.4 重复写操作(Multiple writes to output)

在 ‘Project’ ‘Check’菜单中,此功能用于查找在一个项目中的多个地方建立写通道。
例如:
在以下位置对%QB24进行写操作
PLC_PRG (3): %QB24
PLC_PRG.POU1 (8): %QB24
结果显示在信息窗口中。

4.3.23.5 用户组(User groups)

在 PROSYD 1131 中可以设置8个具有不同访问权限的用户组,访问权限包括对


POU、数据类型、可视化组件及资源的访问。可以建立对单个或所有对象的访问权限。某
个用户组中的成员必须通过密码来识别身份。
用户组从0至7进行编号,用户组0(Group 0)为管理员权限,例如:只有用户组0中的
成员可以定义所有用户组及对象的密码和访问权限。
当建立一个新项目时,所有密码的初始设置都是空的。当给第0组设定密码时,作为第0
组成员可自动进入该项目。
如果在被装载项目已设置用户组0的密码,那么打开项目工程时,将要求输入密码。
第4章 PROSYD 1131 的组件
输入密码对话框显示如下:

在对话框左侧User group复选框中输入你属于的组,在右侧输入相关密码,按OK按钮。
如果所输入的密码不正确,出现以下信息:
"The password is not correct." ("密码不正确")
只有输入正确的密码后,项目才能被打开。
使用'Passwords for user group'命令可分配密码,使用'Object' 'Access rights' 命令可以
定义单个或所有对象的权限。

4.3.24 ‘Project’ 'Passwords for user groups'


用此命令打开用户组密码定义对话框。此功能只能被第0组成员所执行。当执行此命
令后,显示以下对话框:

从左侧User group复选框I中选择组,在Password 区域输入组密码。每输入一个字


符,在密码区内显示星号(*)。在Confirm password 区域再次输入同一个密码。密码
输入完成后,点击OK关闭对话框。如果显示下列信息:
"The password does not agree with the confirmation"("密码与确认密码不相符"),
那么,你在两次密码的输入过程中出现了错误。重复输入密码直到对话框正确关闭。
如果有必要的话,重复此命令,为下一用户组分配密码。

提示:
如果不是为所有用户组都定义了密码,项目可以通过没有定义密码的用户组打开。

使用'Object' 'Access rights' 可以定义单个或所有对象的权限。

4.4 项目中的对象管理(Managing Objects in a Project)


现在我们将讨论如何使用对象,以及对保持项目清晰能提供何种帮助(文件夹,调用
第4章 PROSYD 1131 的组件
树,参照表,…)。

4.4.1 对象(Object)
POU, 数据类型,可视化组件,全局变量,变量配置,采样跟踪,PLC配置,任务配置,
查看与配方管理都被定义为“对象”。部分用于构造项目的文件夹也包括在内。项目中的所
有对象都包含在对象管理器中。
如果你在对象管理器中用鼠标指向一个POU并保持一个很短的时间,则POU类型说明
(程序,函数,功能块)显示在工具提示栏中。对全局变量来说在工具提示栏中显示其关
键字(VAR_GLOBAL, VAR_CONFIG)。
使用鼠标的拖放功能,可在对象类型内移动对象(或文件夹)。方法是:按鼠标左键
选中对象并将其移动到指定位置。如果移动导致重名,新引入的对象名后将添加一个独立
的识别符序号(例如:"Object_1")。

4.4.2 文件夹(Folder)
为了使大项目保持清晰,在文件夹中可以系统地对POU,数据类型,可视化组件,全
局变量进行编组。

可以根据需要设定多层文件夹。如果一个关闭的文件夹前带有加号 ,则表示此文
件夹中包含一些对象和文件夹。点击加号,文件夹被打开,显示其从属的对象。此时点击
减号此文件夹又被关闭。在下拉式菜单中,命令'Expand nodes' 和 'Collapse nodes'与此
功能相同。
使用鼠标的拖放功能,可在对象类型内部移动对象(或文件夹)。按住鼠标左键选择
对象并将其移动到指定位置。
使用命令'New folder' 可创建更多文件夹。

提示:
文件夹不会对程序产生影响,但可以使项目结构清晰。

例如:对象管理器中的文件夹。
第4章 PROSYD 1131 的组件

4.4.3 ‘新文件夹’('New Folder')


用此命令可插入一个新文件夹作为一个结构对象。如果已选择了一个文件夹,则新文
件夹将在此文件夹下产生,否则,它将创建在同一级上。
按鼠标右键点或<Shift>+<F10>选定一个对象或对象类型,显示对象管理器的上下文
菜单。
新插入的文件夹表示为'New Folder'。参看以下文件夹命名协定:
z 同一层上的文件夹必须具有不同的名字。
在不同层里的文件夹可有相同的名字。
z 在同一层里文件夹不能与对象重名。
如果在同一层中已有一文件夹名为"New Folder",每个新添加的同名文件夹自动在名
字后面添加数字序号 (例如 "New Folder 1")。不能为正在使用的文件夹更名。

4.4.4 ‘Expand nodes' 'Collapse nodes'


使用展开命令可展开对象组。使用关闭命令可关闭其下属对象的显示。
双击鼠标或按 <Enter> 键打开或关闭文件夹。
按鼠标右键或<Shift>+<F10> ,选择对象或对象类型,显示对象管理器的上下文
菜单。

4.4.5 ‘Project’ 'Object Delete'


快捷键: <Delete>
用此命令可将当前选择的对象(POU、数据类型,可视化组件、全局变量)或文件夹
及其下属对象从对象管理器及项目中删除。
为了安全,再次要求你进行确认。
如果对象编辑器窗口已经打开,它将自动被关闭。
如果使用命令'Edit' 'Cut' 删除对象,此对象将被放置在剪贴板中。

4.4.6 ‘Project’ 'Object Add'


快捷键: <Insert>
使用用此命令可创建一个新对象。对象的类型(POU、数据类型、可视化组件、全局
变量)取决于在对象管理器中所选择的选项卡。在显示对话框中输入新的POU名字。注意
此对象名不能是已使用的名字。
请注意遵守以下规则:
·POU名字中不能包含空格。
·POU不能与其它POU或数据类型重名。
·数据类型不能与其它数据类型或POU重名
·全局变量列表不能与其它全局变量列表重名
·动作不能与同一POU中另一动作重名
·可视化组件不能与其它可视化组件重名
在其它情况下,允许相同名字的存在。例如:不同POU下的动作名称可以相同,可视
化组件可以与POU同名。
新建一个POU的同时,POU类型(程序,函数,功能块)和编程语言也必须被选择。
‘Program’为POU类型的默认值,POU语言默认值为最后创建的POU所采用的语言。如果要
第4章 PROSYD 1131 的组件
创建函数类型的POU,则必须在Return Type文本输入区输入该函数返回的数据类型,允
许输入各种数据类型(数组,结构,枚举,别名)。也可使用输入助手(例如:<F2>键) 。

例如:新建POU对话框。

如果与上述命名规则没有冲突,点击OK,在对象管理器中创建新对象,同时显示相应
的输入窗口。
如果使用'Edit' 'Insert'命令,插入剪贴板中的对象并无对话框显示。如果所插入的对
象名字与上述规则相冲突(见上文),则在其名后加一下划线和数字使其成为唯一的名字
(例如"Rightturnsig_1")。

4.4.7 ‘Project’ 'Object Rename'


快捷键: <Spacebar>
使用此命令可为当前选择的对象或文件夹重新命名。此对象名不能为正在使用的名字。
如果对象编辑窗口是打开的,当其名字改变后,窗口中的标题也自动改变。.
POU更名对话框如下:

4.4.8 ‘Project’‘Object Convert'


此命令只用于POU。可以将SFC, ST, FBD, LD, IL 语言编写的POU转化成IL, FBD,和
LD三种语言之一。
此项目必须先被编译。选定要转换的语言, 为POU设定新名字。POU名不能是已经使
用过的。按OK,新的POU被添加到POU列表中。
在转化过程中所产生的处理类型对应于编译时给定的类型。
POU转换对话框如下:
第4章 PROSYD 1131 的组件

4.4.9 ‘Project’ 'Object Copy'


用此命令拷贝选定对象并另存为一新名字。在弹出的对话框中输入新对象的名称。对
象名必须是没有被使用过的。
另一方面,如使用命令'Edit' 'Copy' ,对象被放置到剪贴板上,不产生对话框。
复制POU对话框如下:

4.4.10 'Project' 'Object Open'


快捷键: <Enter>
用此命令可在相应编辑器中打开对象管理器中选定的对象。如果此对象窗口已经打开,
则其获得焦点并开始被编辑。
还有另外两种打开对象的方式:
·用鼠标双击选定对象
·在对象编辑器中输入对象名的首字母,显示一对话框,其内包含所有具有所输入首字
母的对象。选择需要的对象,点击OPEN按钮,在编辑窗口中装入此对象。此功能特别适
用于具有多个对象的项目。
选择用于打开对象的对话框如下:
第4章 PROSYD 1131 的组件

4.4.11 ‘Project’ 'Object Access rights'


用此命令打开对不同用户组分配访问权限对话框。选定此命令后出现以下对话框:

用户组0的成员可以为其他用户组分配独立的访问权限。含以下三种可能的设定:
·无存取权:此用户组成员不能打开对象。
·只读:此用户组成员只能打开对象阅读,但不能更改。
·全部权限:此用户组成员打开和更改此对象。
这些设置被应用于对象管理器中当前所选择对象,如果选择选项Apply to all ,所有
POU,数据类型,可视化组件,项目资源都按此设置。
如果为用户组0分配了密码,通过输入密码打开项目后可以为用户组分配权限。

4.4.12 ‘Project’ 'Object properties'


此命令仅作用于对象管理器中全局变量列表中的被选择项。打开对话框'Global
Variable List',可对其中的更新列表参数及用于网络数据交换的全局变量参数进行配置。
如果在对象编辑器中,文件夹'Global Variables'或者上述其它条目被标注,则当创建一个
新的全局变量列表时,通过'Add Object'命令打开对话框。

4.4.13 ‘Project’ 'Add Action'


此命令用于在对象编辑器的选定块中创建一个动作。在显示对话框中输入动作名并选
择对象执行语言。
新动作添加到对象编辑器的文件夹下,在文件夹前面出现一个加号。用鼠标单击此加
号,显示此动作对象,并在此文件夹前显示一个减号。再次点击减号,文件夹收回,其前
面又显示为加号。此功能也可通过选择命令'Expand Node'和 'Collapse Node'来实现。

4.4.14 ‘Project’ 'Open Instance'


用此命令打开和显示在对象管理器中所选择的功能块实例。同样,在对象管理器中双
击功能块,打开选择对话框,其中列有此功能块的实例(Instances)及执行
(Implementation)。在此选择需要的实例或执行,并按OK按钮确认。在窗口中显示需要的
条目。
第4章 PROSYD 1131 的组件

注意:
如果希望查看实例,必须首先登录!(此项目必须编译无错误,并通过命令'Online'
'Login'下载入PLC中)。

打开实例对话框如下:

4.4.15 ‘Project’ 'Show Call Tree'


用此命令打开对象管理器中对象的调用树窗口。此项目必须经过编译。调用树内包含
调用的POU及数据类型。调用树显示如下:

4.4.16 ‘Project’ 'Show cross reference'


用此命令打开一个对话框,其包含所有变量,地址或POU的应用点。此项目必须经过
编译。
首先选择类别(包括'Variable', 'Address'和'POU'),然后输入所选名称。为获得所选
类别中的所有元件,可在Name栏中输入一个星号"*" 。
点击Get References 按钮得到所有应用点的列表。和POU一起显示的还有行号或网
络号、变量名和地址。在Scope列显示这是一个全局变量还是局部变量,Access列显示变
量在当前位置访问权限为‘读’或‘写’。
当你选择了参照表中的某一行并按GO TO按钮或双击该行时,在编辑器中的POU指向
第4章 PROSYD 1131 的组件
相应的应用地点。用此方法可以在所有应用点中跳转,而不含搜索执行时间。
为了方便处理,可使用Send to message window按钮,将当前参照表的内容传入
信息窗口中。
参照表对话框如下:

4.5 通用编辑功能
你可以在所有编辑器中使用以下命令并且其中一些命令可以在对象管理器中使用。这
些命令位于菜单项'Edit'下或用鼠标右键打开下拉式菜单。
如果在计算机上装有IntelliPoint-Software,PROSYD 1131程序支持所有MS
IntelliMouse的功能。在所有具有缩放功能的编辑器中:当滚动鼠标时,按住<Ctrl>键进
行放大,反向滚动鼠标则进行缩小。

4.5.1 ‘Edit’ 'Undo'


快捷键: <Ctrl>+<Z>
此命令用于取消当前编辑器窗口中或对象管理器中刚刚执行的操作。重复执行,可回
退到窗口打开时的初始状态。此命令可用于对象管理器中对POU,数据类型,可视化组件,
全局变量的所有操作。
使用命令 'Edit' 'Redo'可以恢复你刚刚执行的Undo 操作。

提示:
命令 Undo和 Redo只能用于当前窗口。每个窗口都含有其自身的操作列表。当在对
第4章 PROSYD 1131 的组件
象管理器中执行取消(Undo)或恢复(Redo)操作时,窗口必须处于激活状态。

4.5.2 ‘Edit’ 'Redo'


快捷键: <Ctrl>+<Y>
在当前编辑窗口中或对象管理器中,可以恢复你刚刚执行的Undo操作。
同先前取消命令的执行次数一样,可以执行同样次数的恢复命令。

提示:
命令 Undo和 Redo只能用于当前窗口。每个窗口含有其自己的操作列表。如果你希
望在多个窗口中执行U ndo操作,你必须先激活窗口。

4.5.3 ‘Edit’ 'Cut'

图标: 快捷键: <Ctrl>+<X> 或<Shift>+<Delete>


此命令用于将当前的选择从编辑器传送至剪贴板。
在对象管理器中同样可移动所选择的对象,但不是所有对象都能被删除,如:PLC配
置。
` 请记住不是所有编辑器都支持剪切命令,在一些编辑器中此功能受到限制。
编辑器不同,选择形式也不同:
在文本编辑器IL, ST, 和变量声明区中,选择形式为字符串。
在编辑器FBD 和 LD 中,选择形式为一系列网络,通过在网络序号区域的虚线框表示,
或通过连线(line),框符单元(box),操作符(operand)上的虚线框表示。
在SFC编辑器中,选择为用虚线框起来的一系列步骤。
可使用命令'Edit' 'Paste'将剪贴板上的内容粘贴过来。在SFC编辑器中还可使用命令
'Extras' 'Insert parallel branch (right)' 或'Extras' 'Paste after'命令。
为了将所选择内容拷贝至剪贴板而不删除它,请使用命令'Edit' 'Copy' 。
为了将所选内容删除而不影响剪贴板,使用命令'Edit' 'Delete'。

4.5.4 ‘Edit’ 'Copy'

图标: 快捷键: <Ctrl>+<C>


此命令将当前选择从编辑器拷贝至剪贴板。不改变编辑器窗口中的内容。
在对象管理器中同样适用于拷贝对象,但不是所有对象都能拷贝,如:PLC配置。
请记住不是所有编辑器都支持拷贝命令,在一些编辑器中此功能受到限制。
编辑器不同,选择形式也不同:
在文本编辑器IL, ST, 和变量声明区中,选择形式为字符串。
在编辑器FBD 和 LD 中,选择形式为一系列网络,通过在网络序号区域的虚线框表示,
或通过连线(line),框符单元(box),操作符(operand)上的虚线框表示。
在SFC编辑器中,选择为用虚线框起来的一系列步骤。
可使用命令'Edit' 'Paste'将剪贴板上的内容粘贴过来。在SFC编辑器中还可使用命令
第4章 PROSYD 1131 的组件
'Extras' 'Insert parallel branch (right)' 或'Extras' 'Paste after'命令。
为了将所选内容删除并同时将其放入剪贴板中,请使用命令'Edit' 'Cut'。

4.5.5 'Edit' 'Paste'

图标: 快捷键: <Ctrl>+<V>


将剪贴板内容粘贴至编辑器窗口的当前位置。在图形编辑器中,只有插入后,其结构
正确的情况下该命令才生效。
可以从剪贴板将对象粘贴至对象管理器。
请记住不是所有编辑器都支持剪切命令,在一些编辑器中此功能受到限制。
编辑器类型不同,当前插入位置的定义方式也不同:
在文本类编辑器中(IL, ST,变量声明),插入位置表示为一个闪烁的指针(竖线),其
位置可通过点击鼠标来确定。
在FBD和LD编辑器中,当前位置为在网络标号区中具有一虚线框的网络。剪贴板的内
容被插入到此网络前。如果仅选择了部分结构进行拷贝,则该内容被插入到所选单元前面。
在SFC编辑器中,当前位置定义为用虚线框包围的选择区。根据选择区和剪贴板内容
的不同,这些内容被插入到选择区前或成为一个新分枝(并行执行或选择性执行)插入到
所选择区的左侧。
在SFC编辑器中,还可使用命令'Extras' 'Insert parallel branch (right)' 或'Extras'
'Paste after'命令,插入剪贴板内容。
为了将所选择内容拷贝至剪贴板而不删除它,请使用命令'Edit' 'Copy' 。
为了将所选内容删除而不影响剪贴板,使用命令'Edit' 'Delete'。

4.5.6 'Edit' 'Delete"


快捷键: <Del>
将所选内容从编辑器窗口中删除,而并不影响剪贴板的内容。
在对象管理器中,此命令同样适用于所选对象,但不是所有对象都可被删除,例如:
PLC 配置。
选择类型规则与命令'Edit' 'Cut' 相同。
编辑器不同,选择形式也不同:
在文本编辑器中(IL, ST, 和变量声明区),选择形式为字符串。
在FBD 和 LD 编辑器中,选择形式为一系列网络,所选网络在网络序号区中用虚线框
高亮标出。
在SFC编辑器中,选择形式为用虚线框标出的一些步骤。
在库管理器中,选择形式为当前选定的库文件名。
为了将所选内容删除并同时将其放入剪贴板中,请使用命令'Edit' 'Cut'。

4.5.7 ‘Edit’ 'Find'


图标:
用此命令可以在当前编辑器窗口中查找一特定文本。选择此命令后显示查找对话框,
按Cancel 按钮,关闭对话框。
在 Find what 区域,输入要查找的字符串。
另外,你可以决定对要查找的文本是否要求全词匹配(Match whole),或区分大小
第4章 PROSYD 1131 的组件
写(Match case),或由当前位置向上(Up)或向下(Down)查找。
Find next 按钮用于从所选位置开始,按原方向继续查找。如果找到了匹配文本,文
本用高亮显示。如果未找到,显示信息通告。
查找操作可以连续重复进行多次,直到到达编辑器窗口内容的开头或结尾。
请记住,查找到的文本可能被查找对话框所掩盖。
查找对话框如下:

4.5.8 ‘Edit’ 'Find next'

图标: 快捷键: <F3>


用此命令可以继续执行'Edit' 'Find' 操作。

4.5.9 'Edit' 'Replace'


用此命令可以象'Edit' 'Find'命令一样查找特定信息并且用其它信息替换它。选择此命
令后,查找和替换对话框出现。按Cancel或 Close 关闭对话框。
按钮Replace 可将当前选择文本替换为 Replace with 中所输入的文本。
Replace all 命令可将Find next 区域中每次所显示的文本替换为Replace with
区域中的文本。在处理结束后,显示信息报告共完成了多少次替换。
查找及替换对话框如下:

4.5.10 'Edit' 'Input Assistant'


快捷键: <F2>
此命令提供一对话框用于在编辑器窗口中的当前光标位置选择可能的输入。在左侧一
栏选择需要的输入类别,在右侧栏选择需要的输入,按OK键确认。此输入被插入到所选
择的当前位置。
类别的提供决定于在编辑器窗口中当前光标的位置,即在该位置上,可以输入哪些类
别(例如:变量,运算数,POU, 转换等等)。
第4章 PROSYD 1131 的组件
如果 With arguments 选项被激活,当插入一个选定单元时,要赋值的参数与其一
同指定。例如:选择功能块fu1,定义了输入变量 var_in: fu1(var_in:=);
插入函数func1 其使用var1 和 var2 作为传递参数:
func1(var1,var2)
一般情况下,有效单元可以在结构显示和非结构显示之间切换。通过结构显示选项来
设定。

4.5.10.1 非结构化的显示(Unstructured Display)

在每个类别中POU、变量、数据类型简单地按照字母顺序排列。
在一些地方(例如:Watch List),都需要多级变量名。这样,在输入帮助对话框
(InputAssistant)中显示所有POU列表和一个全局变量。在每个POU名后都有一个点。如
果通过双击或按<Enter>键选择一个POU,则属于此POU的变量列表被打开。如果实例或
数据类型已存在,则在多层显示上打开下一层。按 OK 传送选择的变量。
可通过激活Structured Display项切换到结构显示。

4.5.10.2 结构化显示(Stuctured Display)

如果选择 Structured display,则 POU、变量或数据类型将按等级分类。这对于标准


程序,标准函数,标准功能块,定义程序,定义函数,定义功能块,全局变量,局部变量,
定义类型,查看变量..都是有效的。其外观及分级显示方式与对象管理器类似;如果涉及
到某个库文件中的所有元件,它将按字母顺序插入到最前端,并且其相关分级显示与库管
理器相同。
功能块的输入及输出变量(in- and output variables)声明为全局变量或局部变量,并
列于实例名下的'Local Variables' 或 'Global Variables' 类别中(例如:Inst_TP ET, Inst_TP
IN,...)。为取得它,选择实例名(例如:Inst_TP)并按OK确认。
如果在此选择 instance of a function block , 可以选择With arguments选项。在文本
编辑语言 ST、IL 以及任务配置中,插入功能块的实例名和输入参数。
例如, 如果选择 Inst (DeklarationInst: TON;) ,插入以下内容:
第4章 PROSYD 1131 的组件

Inst(IN:= ,PT:=)

如过未选择此选项,只有实例名被插入。在图形化语言中或在查看窗口中,通常只有
实例名被插入。
结构体的元素与功能块实例的显示方式相似。
对于枚举(enumerations),在枚举类型下面列有许多独立的枚举值。顺序是:库枚
举,数据类型枚举,POU局部枚举。
一般规则为包含子对象的行是不可选(除实例以外,参见上文),至于多级变量名,
能够通过一级打开或关闭其分级显示。
如果输入帮助在Watch and Receipt Manager 中或在轨迹配置对话框的轨迹变量选择
中被调用,则可以进行多次选择。当按<Shift>键时,你可以选择一个变量范围;当按<Ctrl>
键时,你可以选择多个独立变量。选择的变量带有标记。如果在所选行的范围内不包含有
效变量(例如:POU名),这些行将不包含在选择项内。当进行独立选择时,这样的行不
被标记。
在查看窗口(watch window)及轨迹配置(trace configuration)窗口,可以从输入
帮助对话框中传送结构、数组或实例。用鼠标双击功能可以打开或关闭单元的分层结构显
示,用OK键确认。
也就是说,可以在查看窗口中一行一行地插入选择的变量,每个变量被写在一独立行
中。在跟踪显示变量时,每个变量被插入到轨迹变量列表中的独立行上。
如果插入选择变量时,超过了最大可显示变量个数 20,则显示故障信息“最大允许20
个变量”。在此列表中将不能插入选择变量。
取消Structured Display, 可切换到非结构化显示。

提示:一些输入(例如:全局变量)编译后只能在输入帮助对话框中更新。
第4章 PROSYD 1131 的组件

4.5.11 ‘Edit’ 'Declare Variable'


快捷键: <Shift>+<F2>
此命令用于打开变量声明对话框。当选项'Project' 'Options' 'Editor' 'Autodeclaration'
被设置后,如果使用了一个新的未定义的变量时,则该对话框自动打开。

4.5.12 ‘Edit’ 'Next error'"


快捷键: <F4>
当一个项目经过编译后发现了错误,用此命令可以显示下一条错误。执行此命令后,
对应的编辑窗口被激活并显示错误地点,同时信息窗口中也显示对应的错误信息。

4.5.13 'Edit' 'Previous error'"


快捷键: <Shift>+<F4>
当一个项目经过编译后发现了错误,用此命令可以显示上一条错误。执行此命令后,
对应的编辑窗口被激活并显示错误地点,同时信息窗口中也显示对应错误信息。

4.5.14 'Edit' 'Macros'


此菜单条目用于显示为项目所定义的所有宏的列表(有关宏信息,参见'Project'
'Options' 'Macros' )。当选择了一个可执行宏后,出现对话框'Process Macro'。显示宏名
和当前运行命令行。按钮Cancel 用于停止宏处理。在此情况下,当前正在处理的命令将
被终止。一条相关信息显示在信息窗口中和在线操作日志中:"<Macro>: Execution
interrupted by user"(“<宏>:被用户执行中断”)。
宏可以在离线或在线模式下运行,但是,无论在哪种情况下,只有在相应模式下有效
的那些命令才能被执行。

4.6 通用在线功能
有效在线命令被集成在菜单条'Online' 下。部分命令的执行要依赖于当前的编辑器。
在线命令只有执行login命令后才有效。
'Online Change'功能,使你可以在控制器运行状态下改变程序。

4.6.1 ‘Online-Change’功能
PROSYD 1131 2.2版本支持在线更改功能。
在启动 PROSYD 1131 软件之前,在线更改功能已经激活。在Windows系统菜单下
选Start \ Programs \ PROSYD 1131* \ Onlinechange Configuration (* 或是你
已经选择的文件夹名),并选择条目Activate Onlinechange。如要取消在线更改功能请
选择条目Deactivate Onlinechange。

提示:
对于一个已经编译的项目,无论其在线更改功能是否已经设置,这个项目在装载之前
必须重新编译。
第4章 PROSYD 1131 的组件

提示:
在线更改功能需要在控制器中有两个同样大小的存储空间用于编译代码的比较。

4.6.2 ‘Online’ 'Login'

图标: 快捷键: <Alt>+<F8>


此命令将编程系统与PLC连接(或者启动仿真程序),并转入在线模式。
如果当前项目自打开或上次更改后没有被编译过,它将被立即编译(同'Project'
'Build')。如果编译过程中出现错误,PROSYD 1131 将不能进入在线模式。
如果自上次下载后,当前项目已经被更改过,但没有被关闭并且没有使用命令'Project'
'Clear all' 删除过下载信息,那么在执行命令'Login'后,显示一个问题对话框"The program
has been changed. Load changes? (Online Change)"。选择 YES 确认更改,选择NO,登
录并装载未更改的程序。Cancel 取消此命令。<Load all> 将整个项目重新装入控制器。
成功连接后,所有在线功能有效(如果在'Project' 'Options' 类别的'Build' 中进行了相
应的设置)。可以监视所有可显示的变量当前值。
使用命令'Online' 'Logout'可以从在线模式返回离线模式。

4.6.3 系统报告(If the system reports)


错误(Error):
"The selected controller profile does not match that of the target
system..."
("所选控制器与实际目标系统不匹配")
检查在目标系统设置(在资源选项卡中)中设置的目标系统,是否与'Online'
'Communications parameters'中输入的参数相匹配。

错误(Error):
"Communication error. Log-out has occurred"
"通讯错误,退出登录"
检查控制器是否正在运行。检查在'Online' 'Communications parameters' 中的
参数设定是否与控制器相匹配。特别要检查是否设定了正确的通讯口,控制器与编程系统
的波特率是否相匹配。如果采用了网关服务器,请检查是否设定了正确的通道。

错误(Error):
"The program has been modified! Should the new program be loaded?"
(“程序已被修改!装载新程序吗?”)
在编辑器中打开的项目与当前PLC中的程序不相符(或程序运行在仿真模式)。因此
无法进行检测及调试。可以选择“No”,退出并打开正确的项目,也可选择"Yes",将当前
项目装入PLC。

信息(Message):
"The program has been changed. Load changes? (ONLINE CHANGE)".
第4章 PROSYD 1131 的组件
("程序已被改变,装入改变部分吗?(在线更改)")
项目运行在控制器内。目标系统支持‘在线更改’(‘Online Change’)并且控制器内的项目
已经被更改。你可以决定是否在控制器程序运行情况下将这些更改装入,或者选择取消此
命令。也可以选择Load all 装入全部编译代码。

4.6.4 'Online' 'Logout'

图标: 快捷键: <Strg>+<F8>


与PLC的连接将被中断,或者将仿真程序终止并转为离线模式。
使用命令'Online' 'Login',从离线模式返回在线模式。

4.6.5 ‘Online’ 'Download'


此命令将编译后的项目下载至PLC。
如果使用C-Code,在下载之前,调用C-Compiler 生成下载文件。如果不是这种情况,
下载文件在编译时产生。
下载信息存储在<项目名>0000000ar.ri 文件中,在线更改时用于比较当前项目与
最近下载至控制器中的程序,这样只有变化了的程序部分才被重新装入。此文件使用命令
'Project' 'Clear all 清除。

4.6.6 'Online' 'Run'

图标: 快捷键: <F5>


此命令用于启动PLC中的程序,或仿真模式下的程序。
此命令可在执行'Online' 'Download'命令后执行,或在PLC用户程序被执行'Online'
'Stop' 命令之后重新运行,或在用户程序断点处运行,或当执行了'Online' 'Single Cycle'
命令后运行。

4.6.7 'Online' 'Stop'

图标: 快捷键 <Shift>+<F8>


在两个循环之间,停止PLC中程序的执行或仿真模式下程序的执行。
使用命令'Online' 'Run' 继续执行程序。

4.6.8 'Online' 'Reset'


如果你已使用一个特定值为变量进行了初始化,则用此命令可以将此变量恢复到初始
值。所有其它变量以标准初始化值进行设定(例如:整形变量为0)。作为预防措施,
PROSYD 1131 将在所有变量被覆盖前要求你确认你的决定。此时所进行的操作等于在
PLC电源故障或关闭控制器然后又启动(热启动)时。
使用命令'Online' 'Run' 重新启动程序。

4.6.9 'Online' 'Reset (cold)'


此命令用于复位所有变量,包括将保留(RETAIN)变量返回到初始值。只有持续
第4章 PROSYD 1131 的组件
(PERSISTENT)变量保留复位前的值。参见Online' 'Reset'和'Online' 'Reset Original'。

4.6.10 'Online' 'Reset (original)'


此命令用于将所有变量(包括RETAIN和PERSISTENT)复位到其初始值并且清除控制
器中的用户程序。控制器返回到原始状态。参见'Online' 'Reset' 与'Online' 'Cold Reset'命

4.6.11 'Online' 'Toggle Breakpoint'

图标: 快捷键: <F9>


此命令用于在激活窗口中的指定位置设置断点。如果指定位置已经设置了断点,此断
点将被清除。
断点设置的位置以当前窗口中POU 所使用的语言而定。
在文本类编辑器中 (IL, ST), 断点设置在指针所指的行上,如此行是断点所在位置(通
过行号区显示为深灰色来识别)。则可以通过用鼠标点击行号区进行设置或清除文本编辑
器中的断点。
在 FBD 和 LD中,断点设置在当前选择的网络上。你可以通过点击网络序号区进行设
置或删除FBD 或LD编辑器中的断点。
在 SFC中, 断点设置在当前选择的步骤上。你可以使用<Shift>键并同时双击鼠标进行
设置或删除断点。
如果断点已经设置,则在行号区或网络序号区或步骤中将以高亮蓝色背景显示。
程序运行到断点位置后将停止运行并且对应区域将以红色背景显示。如需要继续执行
程序,使用命令'Online' 'Run', 'Online' 'Step in', 或'Online' 'Step Over' 。
你也可以使用断点对话框设置或删除断点。

4.6.12 'Online' 'Breakpoint Dialog Box'


此命令通过打开一个对话框编辑项目中的所有断点。此对话框也显示当前已设定的所
有断点。
为了设置断点,在POU复选框中选择POU,在Location复选框中选择要设置断点的行
或网络,然后按Add按钮。此断点将被添加到列表中。
为了删除一个断点,从设置断点列表中高亮显示要删除的断点,并按 Delete 键。
Delete All 按钮可以删除所有断点。
为了定位到编辑器中某断点所在位置,从设置断点列表中选择断点,按Go to 按钮。
断点编辑对话框如下:
第4章 PROSYD 1131 的组件

也可以使用'Online' 'Toggle Breakpoint' 命令设置定或删除断点。

4.6.13 ‘Online’ 'Step over'

图标: 快捷键: <F10>


此命令用于执行单步操作。如果调用一个POU,程序将在POU执行后停止。在SFC中,
需要执行一个完整的动作。
如果当前指令是调用一个函数或功能块,那么此函数或功能块将被完全执行。使用
'Online' 'Step In'命令,可移至被调用函数或功能块的第一条指令上。
如果已经到达最后一条指令,程序将继续执行POU中的下一条指令。

4.6.14 'Online' 'Step in'


快捷键: <F8>
执行单步操作。程序在已调用POU的第一条指令之前停止。
根据情况打开另一个POU。
如果当前位置是调用一个函数或功能块,则此命令将处理所调用POU的第一条指令。
在所有其它情况下,此命令将严格地按照'Online' 'Step Over'功能执行。

4.6.15 ‘Online’ 'Single Cycle'


快捷键: <Ctrl>+<F5>
此命令执行一次PLC循环并在此循环后停止。
为了以单循环方式进行处理,此命令可连续重复执行。
当执行'Online' 'Run'命令后,单循环运行终止。

4.6.16 'Online' 'Write values'


快捷键: <Ctrl>+<F7>
用此命令可以在循环开始时,仅一次为一个或多个变量设定用户指定数值,(参见
'Online' 'Force values')。
所有单元素变量的值都可以改变,只要它们显示在监控状态下。
在命令'Write values'执行之前,必须准备好要写入的变量值:
对非布尔型变量,用鼠标双击变量声明区内的变量对应行,或标记此变量并按<Enter>
第4章 PROSYD 1131 的组件
键。'Write variable <x>'对话框随之出现,输入准备写入变量的值。.
写变量对话框显示如下:

对布尔型变量来说,在声明该变量的行上,通过双击鼠标来触发值(在TRUE 和FALSE
之间切换,不允许有其它值), 无对话框显示。
写入设定值以青绿色显示在括号中,位于原变量值后面。例如:a=0 <:=34>

提示:
例外:在 FBD、LD 编辑器中,值的显示为青绿色,在变量名后面没有括号。

可以为多个变量设定值。
准备写入变量的数值可以用同样的方法进行更改和删除。同'Online' 'Write/Force
dialog'的使用方式一样(见下文)。
被写入的值预先存储到写列表中(Watchlist),它们将一直保存直到被实际写入、删
除或通过'Force values'命令传入到强制列表(forcelist)中。
写数值(Write Values)命令可以在两个地方找到:
z ‘Write Values’命令在菜单'Online' 下。
z ‘Write Values’按钮在对话框'Editing the writelist and the forcelist' 下。
当执行'Write values'命令后,在控制器循环开始,写列表中的所有值都被一次性写入
对应的变量中,然后从写列表中删除。(如果执行'Force values'命令,变量从写列表中删
除并传入到强制列表中)。

提示:
在顺序功能图语言(SFC)中,不能使用 'Write values'命令改变转换表达式所分配的值。这
是由于在监视状态下,表达式所显示的总值('Total value')不是单独的变量值。 (例
如:"a AND b" 只有两个变量都为TRUE 时才显示为TRUE )。

另一方面,在FBD中只有表达式的第一个变量作为例如一个功能块的输入,在监视时,
'Write values' 命令只适用于此变量。

4.6.17 ‘Online’ 'Force values'


快捷键: <F7>
用此命令可将一个或多个变量永久设定为用户定义的值(参见‘Online’‘Write’在程序循
环开始时进行一次设置)。此设定在运行系统中循环的开始和结束时产生。
一个循环中的时间顺序为:1.读输入 2.强制值 3.处理代码 4.强制值 5.写输出
此命令将一直有效,直到被用户暂停(命令'Online' 'Release force')或编程系统退出。
如上述描述,设定新值时,首先创建一写列表。写列表中的变量因此可以在监视状态
下显示。当执行命令'Online' 'Write values'后,写列表的内容被传送到强制列表中。强制
第4章 PROSYD 1131 的组件
列表按要求更新。写列表被清空,新值显示为红色。强制列表中的更改将在下次执行'Force
values'命令时传输到程序中。

提示:
强制列表创建于第一次强制包含在写列表中的变量时,此时写列表的建立早于它所包含的变量
的第一次写操作。

该命令用于强制一个变量,这个变量将被输入到强制列表中,可以在以下两个地方找
到:
z ‘Force Values’命令在菜单'Online' 下。
z ‘Force Values’按钮在对话框'Editing the writelist and the forcelist' 下。

提示:
在顺序功能图语言(SFC)中,转换表达式所分配的值不能使用 'Force values'命令改变。这
是由于在监视状态下,表达式所显示的总值('Total value')不是单独的变量值。 (例
如:"a AND b" 只有两个变量都为TRUE 时才显示为TRUE )。

另一方面,在FBD中只有表达式的第一个变量作为例如一个功能块的输入,在监视时,
'Force values'命令只适用于此变量。

4.6.18 'Online' 'Release force'


快捷键: <Shift>+<F7>
此命令终止控制器中的变量值强制。此变量值再次按正常方式变化。
强制变量可以通过其值显示为红色来识别。你可以删除整个强制列表,也可以选单个
变量解除强制。
为了删除整个强制列表,也就是释放所有强制变量,可选择下列方法:
z ‘Release Force’命令在菜单'Online' 下。
z ‘Release Force’按钮在对话框'Editing the writelist and the forcelist'下。
z 在对话框'Remove Write-/Forcelist' 中,使用命令 'Release Force' 删除所有强制
列表。此对话框在选择命令'Release Force'时打开,同时写列表也存在。
为了释放所选强制变量,必须先选择这些变量。可以用以下所描述的方法。选择的变量
使用青绿色扩展名<Release Force>表示:
z 用鼠标双击非布尔型变量声明行 ,打开对话框'Write variable <x>',按<Release
Force for this variable> 按钮。
z 重复用鼠标双击布尔型变量声明行,在此行的结束位置触发显示<Release Force>。
z 在'Online' 菜单下打开写入/强制-对话框,删除'Forced value'专栏中编辑区中的值。
当所有需要的变量在变量声明区内都被设置为"<Release Force>"后,选择命令'Force
values' 以将修改了的强制列表传入程序中。
当你执行'Release Force'命令时,如果当前写列表(参见'Online' 'Write Values')不为
空,对话框'Remove Write-/Forcelist'将打开。用户可以决定是否释放强制(Release
Force),或删除写列表(Remove the writelist),或删除两个列表。
删除写-/强制列表对话框如下:
第4章 PROSYD 1131 的组件

4.6.19 'Online' 'Write/Force' Dialog'


使用此命令打开一个对话框,显示两个注册表:写列表(Watchlist)和强制列表
(Forcelist)。每个被写入或被强制的变量名和值都显示在表格中。
编辑写列表和强制列表对话框如下:

通过命令'Online' 'Write Values' 可将变量写入写列表,通过命令'Online' 'Force


Values'可传送到强制列表中。"Prepared Value" 或 "Forced Value" 栏内的值可以编辑。
如果条目的类型不一致,显示错误信息。如果一个数值被删除,也就意味着条目从写列表
中被删除,或者当使用除Cancel命令之外的其它命令关闭对话框时,变量被通知停止强
制。
在线菜单下的下列命令可使用按钮进行操作:
强制值(Force Values): 当前写列表中的的所有条目被传入到强制列表中,控制器中
的变量值被强制。所有标有'Release Force'标记的变量取消强制。对话框被关闭。
第4章 PROSYD 1131 的组件
写入值(Write Values): 所有当前写列表中的条目被一次性写入到控制器中相应的变
量上。对话框随之关闭。
释放强制(Release Force): 强制列表中的所有条目被删除,如果存在一个写列表,
显示对话框"Delete write-/forcelist",用户可以决定是否释放强制(release forcing)或
删除写列表(discard the writelist),或删除两个表。在此对话框将关闭。

4.6.20 'Online' 'Show Call Stack'


当仿真模式程序停止在某个断点上时可以使用此命令。你将获得一个具有POU调用堆
栈Callstack 对话框如下。

第一个POU总是 PLC_PRG, 因为它是程序执行的开始。


最后一个POU总是当前正在执行的POU。
当你已经选择了一个POU并按Go to按钮后,此POU被装入到编辑器中,它将显示当
前正在处理的行或网络。

4.6.21 ‘Online’ 'Flow Control'


选择流控制(flow control)选项后,在菜单项前显示(√)。随后,标记每个行或
每个网络在最后一个PLC 循环中的执行情况。
正在运行的行或网络的行号区或序号区显示为绿色。在IL编辑器中会增加一个显示区,
显示累加器中的当前内容。在图形类编辑器中,如功能块图或梯形图,一附加区将插入到
所有连接线上,但不显示布尔量。当输入和输出变化时,通过连接线传输的值将显示在该
区域内。当只传输布尔量的连接线传输TRUE值时,其颜色为蓝色。此命令允许监控信息
流的内容。

4.6.22 'Online' 'Simulation'


如选择 Simulation Mode , 在菜单项前显示(√)。
在仿真模式下,用户程序运行在同一PC机中的Windows环境下,该模式用于测试项目。
PC机与仿真模式间的通讯采用Windows Message结构。
如果程序不是运行在仿真模式下,则此程序只能在PLC中运行。典型的PC机与PLC间的
通讯为串行接口。
第4章 PROSYD 1131 的组件
此标志状态随项目存储。

4.6.23 'Online' 'Communication Parameters'


当本地PC机与运行系统之间的通讯在系统中通过网关服务器运行时,将会出现用于设
置通讯参数的专用对话框(如果使用OPC或DDE服务器,在其配置中必须设定相同的通讯
参数)。

4.6.24 网关系统规则(Principle of a gateway system)


在解释对话框操作之前,让我们先了解一下网关系统规则:

网关服务器允许本地PC机与一个或多个运行系统进行通讯。关于运行系统的地址设
定、每个网关服务器的特殊配置以及对网关服务器的连接设置都建立在本地PC机上。这样,
在本地PC机上可同时连接网关服务器和运行系统。如果我们试图与运行在另一台PC机上
的网关服务器进行连接处理,必须确保该网关服务器已经启动。如果你选择了本地安装网
关服务器,当你登录到运行系统时,网关服务器将自动启动。你可以在任务栏的右下方,
通过一个PROSYD 1131 符号来识别网关状态。当通过网关连接至运行系统时,此符号
出现。用鼠标右键点击该符号显示菜单Info和 Finish。Finish命令用于关闭网关。
见下面所显示的网关系统图表:

PC_local 为本地PC机,PC_x为具有网关地址的另一台PC机。PC_gateway 为安装


有网关服务器的PC机,PC_PLC1到PC_PLC4 为执行运行系统的PC。该图表所显示的这
些模块是分开的,但是网关服务器和运行系统装在同一台本地PC机中是完全可能的。

提示:
请注意对网关的连接仅允许通过TCP/IP方式,确认你的PC机已设置了适当的配置。

从网关至各种运行系统计算机的连接可通过其它协议(TCP/IP, Pipe, 等等 ) 建立。

4.6.25 本地 PC 机上的通讯参数对话框
此对话框用于选择与PLC通讯的网关服务器。可以为安装在本地PC机上的网关服务器
建立通道,以便该网络中的其它计算机可以使用。
当前设置在任何时候都可以使用Update 按钮进行调用。
第4章 PROSYD 1131 的组件
如果通讯参数已经按照网关系统规则中的示例进行了配置,则将显示下面的对话框:

标题 Channels 列出了两种连接类别:
第一种为安装在当前已连接的网关服务器上的所有连接,叫做‘本地主机’('localhost')。
此网关的地址或名称在例子中位于减号后的上面位置。在正常情况下,'localhost' 的地址
对应于本地计算机(PC_local)的IP地址127.0.0.1。下面向右缩进部分为三个计算机的地址,
其网关通道被设置为PC_PLC1 到 3。它们已经由本地PC机或其它PC机(PC_x)配置为连接
到网关服务器。
第二种包含所有由本地PC机建立的至网关的连接,通过此配置对话框举例。在减号之
后,PC_PLC1和PC_PLC4之下创建分支。在网关上不必知道这些通道地址。例子中PC_PLC4
的配置参数存储在项目中,在下一次登录到运行系统时,网关将首先知道其配置参数。在
PC_PLC1上,相关的网关地址已经作为一个附加的连接“通道树” (“channel tree”)的“分
支”(“sub-branch”)显示出来了。
当选择左侧通道时,在对话框中间部分的Name, Value 和Comment 中显示相关参
数。

4.6.26 设定网关服务器和通道
设定网关服务器和通道:
为定义至网关服务器的连接,我们首先通过点击Gateway按钮打开对话框
'Communication Parameters Gateway'。 定义至网关的本地连接对话框。

在此,你可以 输入或编辑以下内容:
第4章 PROSYD 1131 的组件
z 连接(connection)类型,指从你的计算机至另一台计算机(网关服务器正在运
行中)的连接。如果网关服务器运行在本地计算机上,则允许使用共享内存("local")
或TCP/IP连接方式;如果需要连接至其它计算机上,只允许使用TCP/IP。
z 计算机地址,在该计算机上正在运行你想要使用的网关服务器:IP地址或相应的
主机名称(如:localhost)。在初始设置时,标准‘localhost’作为计算机名(地址),
这意味着可以访问本地安装网关。在大多数情况下,名字'localhost'被设置为IP地
址127.0.0.1,你也可以在地址区直接输入。如果需要访问其它计算机上的网关服
务器,你必须用该计算机名或IP地址更换'localhost'的名字或IP地址。
z 网关服务器密码,如果选定的网关服务器在远程计算机上,则需要输入密码。如
果密码输入不正确,或不完整,将出现错误信息。
在此连接中应注意:你可以按如下步骤给出本地安装网关服务器密码:用鼠标右
键点击工具栏右下方的网关图标,并选择‘更换密码’。显示更改或输入密码对话框,
如果你访问本地网关服务器,则不会被要求输入密码。
z 计算机端口,网关服务器使用此端口运行。作为一个标准,选择网关的正确数值
已经给出。
如果选择OK关闭对话框,对应的输入(计算机地址)将显示在‘通讯参数’对话框上部
的Channels区内,在它下面为此网关服务器上的有效通道。
设置网关服务器通道:
用鼠标选择其中一个通道。其对应参数显示在列表中。如果不能对所选的网关地址建
立连接 — 可能是因为网关还未启动或者地址不正确 — ‘not connected’显示在地址后面
的括弧内并出现信息‘No gateway with these settings could be found’。在此情况下,可在
'Quick check in the event of unsuccessful connection attempt to gateway'中找到更多信
息。
通道设定完成后,点击OK关闭对话框,此设定将存储在项目中。

4.6.27 为本地网关服务器设定一个新通道
你可以为当前连接的网关服务器设定一新通道,它将用于建立与服务器的进一步连接,
例如:与控制器的连接。有关这方面的选项决定于已安装在计算机上的设备驱动器的数量。
按New按钮,显示对话框‘通讯参数:新通道’(‘Communication Parameters:New
Channel’)。

Name 输入区自动包含上次所输入的通道名。如果无通道定义,将提供当前网关名,
其后面有一个下划线,如:'localhost_'。你可在此位置编辑通道名,通道名不必唯一,但
第4章 PROSYD 1131 的组件
一般推荐使用独立的名字。
在网关计算机上,有效的设备驱动被列在设备(Device)表中;在 Name 栏中,用
鼠标选择驱动,其相应内容显示在Info 栏中。
如果用 OK 关闭对话框,新设定的通道显示在‘通讯参数’对话框中,在Channels中,
作为一个新输入通道位于减号最下面位置。这样,此通道仅存储在本地项目中(见上文)。
在此,你可以编辑Value 栏(见下文)。 用OK确认输入参数,同时离开‘通讯参数’对话
框。
为了将新输入的网关通道和它的参数通知给网关服务器xy,并且使此通道对其它计算
机(能够访问网关xy)同样有效,你必须登录到运行系统。如果你重新打开'Online'
'Communication parameters' 对话框,显示在‘channel tree’下的新通道,不仅可出现在先
前位置,还可以出现在网关服务器中的地址或名字下面。这表示此通道已经被网络所识别。
你现在可以从其它计算机上打开通讯参数对话框,选择网关xy并且使用其新通道。
如果登录时产生了通讯故障,那么,可能是由于该接口正在被另一设备使用,因而不
能被打开(例如:串行口COM1)。也可能是因为控制器没有运行。
网关服务器已经取得的通道参数不能在配置对话框中进行编辑。此参数区显示为灰色。
但你可以在其未激活状态下删除连接。

提示:
请注意通道的删除是不可取消的,它就发生在你按Remove按钮时。

4.6.28 在通讯参数对话框编辑参数时的技巧
你可以仅编辑Value栏中的文本区。
用鼠标选择一文本区,双点或按空格键进入文本编辑模式。用<Enter>键结束输入文
本。
你可以使用<Tabulator>键或<Shift> + <Tabulator>键跳转至下一个或上一个
可编辑位置。
当编辑数值时,可以用上下箭头或用Page Up/Down键以一个数值单位或十个数值单
位进行改变。用鼠标双击数值也能够以一个数值为单位逐渐增加。输入检测可用于限制数
值输入:<Ctrl> + <Home>或<Ctrl> + <End> 对于可能的输入值分别提供最低或
最高数值检测。

4.6.29 快速检测网关的错误连接
如果连接至所选网关计算机不成功时,你应该检查以下几点:
·网关服务器是否启动(三色图标显示在工具栏右下方)?
·在‘Gateway:Communication Parameters’对话框中所输入的IP地址是否为正在运行
的网关的计算机地址(使用‘Ping’指令检查)?
·本地TCP/IP连接是否工作?故障很可能是由TCP/IP引起的。

4.6.30 ‘Online’ 'Sourcecode download'


此命令将项目源代码下载至控制器系统中。它不同于项目编译时所生成的代码!你可
第4章 PROSYD 1131 的组件
以在 'Project''Options''Sourcedownload' 对话框中选择下载选项(time, size)。

4.6.31 ‘Online’ 'Create bootproject'


用此命令可使编译后的项目驻留在控制器中,当重新启动时,控制器自动装载项目。
引导项目的存储不同于目标系统。例如:在386系统中创建了三个文件:default.prg 包
含项目代码,default.chk 包含代码的检查和,default.sts 包含重新启动后控制器状态
(启动/停止)。
如果项目编译后无错误,命令'Online' 'Create bootproject' 在离线模式下同样有效。
在此情况下,在项目目录中创建以下文件:<projektname>.prg 引导项目代码,
<projektname>.chk 校验和。这些文件可以根据需要重新命名并复制到PLC中。

4.6.32 'Online' 'Write file to controller'


此命令用于向控制器装载需要的文件。在'Write file to controller' 对话框中选择需要
的文件。
按'Open' 关闭对话框,文件被装入控制器中并且以相同的文件名存储。装载过程伴随
着一个进程对话框。
使用命令'Online' 'Load file from controller',你可以重新获得先前装入到控制器中的
文件。

4.6.33 ‘Online’ 'Load file from controller'


使用此命令可以重新获得先前采用'Online' 'Write file to controller'命令装入控制器中
的文件。'Load file from controller'对话框将被打开。提供一个文件名,并在选择窗口中输
入路径名,使用“Save” 按钮关闭对话框。

4.7 日志(Log)
日志按年月日时间顺序存储在线状态下的所有操作。为此将生成一个二进制日志文件
(*.log)。此后,用户可以从项目日志文件中引用并存储到外部纪录中。
日志窗口可以在在线或离线状态下打开并且作为在线监控使用。

4.7.1 ‘Window’ 'Log'


选择菜单'Window' 'Log' 打开日志窗口。
在日志窗口中,当前日志文件名显示在Log: 后面。如果这是当前项目日志,
"(Internal)"将显示。
在日志窗口中显示注册输入。最新的输入总是显示在最下方。
只有在菜单'Project' 'Options' 'Log' 中的 'Filter' 区域被激活的类别操作才会显示。
类别(Category): 属于特殊纪录的条目类别。含有以下四种:
·用户操作(User action): 用户已经执行的在线操作(典型操作为在线菜单下的命令
操作)。
·内部操作(Internal action): 在线模式下已经执行的内部操作(例如:删除缓冲区
或初始化调试)
·状态改变(Status change):运行系统已经改变的状态(例如:当到达断点时,从
运行到中断的状态变化)。
·意外(Exception): 已产生的意外情况,例如:通讯错误。
第4章 PROSYD 1131 的组件

描述(Description): 操作类型。用户操作名同相应的菜单命令名相同;所有其它
操作以英文显示,并且与对应的OnlineXXX() 功能名相同。
信息(Info): 此区域包含操作过程中所产生的故障描述。如果无故障产生,此区域
为空。
系统时间(System time): 操作开始时的系统时间,以秒计。
相对时间(Relative time): 从在线开始时计时,以毫秒计。
持续时间(Duration): 操作时的持续时间,以毫秒计。

4.7.2 菜单日志(Menu Log)


当日志窗口具有焦点时,在菜单栏中显示菜单选项 Log。
此菜单包含以下条目:
装载…(Load…) 外部日志文件*.log,可以装载并显示在标准文件打开对话框
中。
项目日志不会被此命令覆盖。如果日志窗口关闭并再次被打
开,或者启动新的在线状态,则装入的版本将再次被项目日
志所覆盖。

存储…(Save…) 此命令只能在当前项目日志显示时进行。它允许将项目日志摘
录到外部文件中。同时将显示以下对话框,可以选择存储
第4章 PROSYD 1131 的组件
的在线部分日志:

选择成功后,标准存储对话框被打开。

显示项目日志(Display Project Log) 此命令仅在外部日志正在显示时使用。它将


显示切换回项目日志。

4.7.3 存储项目日志
不管日志是否被存储在外部文件中(见上文),项目日志将自动存储在一个二进制文
件<projectname>.log 中。如果在'Project' 'Options' 'Log'对话框中没有给出不同的路径,
它将存在项目目录下。
可以在'Project' 'Options' 'Log'对话框中定义可存储的在线内容最大数量。如果在纪录
过程中超过了这个数量,最先存储的内容将被删除以便存储新的内容。

4.8 窗口设定
在'Window' 菜单下,可以找到所有窗口管理命令。这些命令既可以用于自动设置窗
口,又可以用于打开库管理器并且还可以用于在打开的窗口间进行切换。在菜单底部可以
找到所有先前被打开过的窗口列表。你可以用鼠标点击相关项切换至相应的窗口。在当前
显示的窗口名字前显示(√)。

4.8.1 ‘Window’ 'Tile Horizontal'


此命令用于将所有窗口横向排布在工作区内,它们覆盖整个工作区并且不会重叠。

4.8.2 ‘Window’ 'Tile Vertical'


此命令用于将所有窗口纵向排布在工作区内,它们覆盖整个工作区并且不会重叠。

4.8.3 ‘Window’ 'Cascade'


此命令用于将所有窗口一个挨一个地层叠排布在工作区内。
第4章 PROSYD 1131 的组件

4.8.4 ‘Window’ 'Arrange Symbols'


此命令用于将工作区中所有最小化的窗口在工作区最底部排成一行。

4.8.5 ‘Window’ 'Close All'


此命令用于关闭所有工作区中打开的窗口。

4.8.6 ‘Window’ 'Messages'


快捷键: <Shift>+<Esc>
此命令用于打开或关闭信息窗口,此窗口包含上次编译、检查,或比较程序信息。
如果此信息窗口已打开,则在此命令之前显示标记(√)。

4.9 帮助
在运行 PROSYD 1131 时,可以使用在线帮助系统。在此你可以找到手册中的所有
内容。

4.9.1 ‘Help’ 'Contents and Index'


此命令可用于打开帮助主题窗口。
选Contents 选项卡可以找到所有帮助内容。双击鼠标或使用对应按钮可以打开或关
闭这本书。双击或使用打开(Show) 按钮可将高亮显示的主题打开,在帮助主窗口或
索引窗口中显示。
选 Index 选项卡可以查找特定的词语,选择 Search 选项卡可以进行全文本查找。
帮助主题窗口如下显示:
第4章 PROSYD 1131 的组件

4.9.2 主帮助窗口
在主帮助窗口中列有帮助主题及相应的索引列表。
下列按钮可以使用:
·帮助主题(Help topics)打开帮助主题窗口
·返回(Back) 显示前一个帮助条目
·打印(Print)打开打印对话框
·<< 显示帮助画面序列中前一个画面
· >> 显示帮助画面序列中后一个画面
另外,下列菜单命令也可以使用:
·使用'File' ''Print Topics'命令可以打印当前帮助条目。
·使用Edit' "Copy" 命令可将当前选定的文本拷贝到剪贴板中。从这里可以将此文本
插入到其它位置并使用。
·使用'Edit' "Annotate" 命令打开一个对话框,在其左侧的编辑区内可以为帮助页输
入一个注释。
在右侧有用于存储文本的按钮(storing),用于取消程序的按钮(canceling),用
于删除符号的按钮(deleting),用于将高亮显示文本拷贝到剪贴板的按钮(copying),
用于从剪贴板粘贴文本按钮(pasting)。
如果你已为一个帮助页面作了注释,则在页面左上角出现一绿色别针标志。用鼠标点击
此标志,可以打开此注释对话框。
·如果你希望为帮助页做一个标记,你可以设置一个书签。选择"Define" "Bookmark"
命令,显示一个对话框,你可以输入一个新名字(此页的名字可作为一个启动按钮)
或删除一个老的书签。如果书签已定义完成,则在“Bookmark” 菜单中将显示此书签。
第4章 PROSYD 1131 的组件
通过选择此菜单中的条目可直接进入此页。
·在"Options"选项中, 你可以定义帮助菜单是否总显示在前景中,或背景中,或默认设
定中。
·使用"Options" "Display previous topics" 命令,可以提供先前打开的帮助主体选
择窗口,你可双击想要查看的条目。
·在"Options"选项中,可以选择字体(Font):小体、正常体或大体。
·选择"Options" "Use System Color",帮助窗口将不显示其设定颜色,而按系统颜色
显示。

4.9.3 索引窗口(Index Window)


索引窗口包含菜单命令,术语,指令序列的说明。
索引窗口总是按照缺省方式显示,除非在帮助主窗口中将帮助选项设置为放在背景中。
下列按钮可以使用:
·帮助主题(Help topics)打开帮助主题窗口
·返回(Back) 显示前一个帮助条目
·打印(Print) 打开打印对话框
·<< 显示帮助画面序列中前一个画面
· >> 显示帮助画面序列中后一个画面
索引窗口显示如下:
第5章 编辑器(Editors)

4.9.4 快速帮助(Context Sensitive Help)


快捷键: <F1>
在一个活动窗口、一个对话框或上述一个菜单命令中可使用 <F1> 键。当你从菜单
中执行一条命令时,此命令的帮助将在此时显示出来。
你也可以高亮显示一个文本(例如:一个关键字或一个标准函数),按<F1>键则显
示此条目的帮助。

5. 编辑器(Editors)
所有POU(程序组织单元)编辑器都由变量声明部分和程序主体部分组成。通过一个
能够拖动的屏幕分隔线分开,用鼠标点击屏幕分隔线可以进行上下移动。主体可以是一个
文本编辑器或图形编辑器;声明部分总是一个文本编辑器。

5.1.1.1 打印范围

如果在‘Project’‘Options’对话框中的 'Workspace' 项中选择了'Show print range'选


项,则在编辑器中用红色虚线显示打印范围。在 'File' 'Printer Setup' 菜单下设置打印机属性
及打印页面。如果未设置打印机属性或打印页面,则使用默认配置(Default.DFR 和默认打
印机 ) 。当在 'Documentation settings' 中选择 'New page for each object' 或 'New page for each
sub-object' 选项后,将显示水平边界。最低边界不显示。

提示:
只有当缩放因数选择100% 时,打印范围才可能精确地显示。

5.1.1.2 注释

用户注释必须用符号 "(*" 和 "*)"括起来。例如:(* This is a comment.*)


注释可放置在所有文本编辑器中的任意位置,如:在所有的声明,IL 和 ST 编辑器,
第5章 编辑器(Editors)
以及自定义数据类型中。如果在项目使用template打印输出,在变量声明区中所输入的
注释显示在每个变量之后的基于文本的程序部件中。
在 FBD 和 LD 图形编辑器中,注释可输入到每个网络中。因此,找到希望注释的网
络,点击 'Insert' 'Comment'。在 CFC 中,有专用的注释POU,可以放在任意位置。
在 SFC 中,可以在编辑步骤(step)属性对话框中输入有关步骤的注释。
如果在 'Project' 'Options' 'Build Options' 对话框中选择了的相关选项,可以使用嵌套注释
(Nested comments)。
在线模式下,如果你将鼠标指向一个变量并停留一个短暂时间,则该变量的类型、地
址以及注释将显示在一个提示框中。

5.1.1.3 打开POU(Zoom to POU)

快捷键:<Alt>+<Enter>
该命令可将所选的 POU 装入到编辑器中。如果在文本编辑器中用鼠标指向POU名或在
图形编辑器中选择POU块框, 则在上下文菜单中(快捷键<F2>) 或 'Extras' 菜单中,该命令
有效。
如果你正在处理一个来自于库文件的POU,则打开库管理器并显示相应的POU。

5.1.1.4 打开实例

该命令对应于 'Project' 'Open instance' 命令。

这个命令与 'Project' 'Open instance' 命令相同。 如果在文本编辑器中用鼠标指向功能块


名或在图形编辑器中选择功能块, 则在上下文菜单中(快捷键<F2>) 或 'Extras' 菜单中,该
命令有效。

5.2 声明编辑器
声明编程器用于声明 POU 变量和全局变量的数据类型,这些变量可输入到监视和配
方管理器中。该编辑器允许使用 Windows 功能,如果安装了相应的驱动程序,可以使用
IntelliMouse功能。
在 Overwrite 模式下, 'OV' 以黑色显示在状态栏中;使用 <Ins> 键可完成 Overwrite 和
Insert 模式之间的转换。
变量声明由语法颜色所支持。
重要的命令可在上下文菜单中找到(鼠标右键或<Ctrl>+<F10>)。

5.2.1 声明部分
仅在这个 POU 中使用的所有变量必须在其声明部分中声明。包括:输入变量,输出
变量,输入/输出变量,局部变量,保持变量和常量。声明语法基于 IEC61131-3 标准。在
PROSYD 1131 编辑器中的正确的变量声明实例如下:
第5章 编辑器(Editors)

5.2.2 输入变量(Input Variable)


在关键字 VAR_INPUT 和 END_VAR 之间,可以声明 POU 中的所有输入变量。这
意味在调用的时候可以传送相应的实际参数。

例如:
VAR_INPUT
in1:INT (* 1. Inputvariable*)
END_VAR

5.2.3 输出变量(Output Variable)


在关键字 VAR_OUTPUT 和 END_VAR 之间,可以声明 POU 中的所有输出变量。
这意味着这些数值被返回到产生调用的POU中并用于进一步的使用。

例如:
VAR_OUTPUT
out1:INT; (* 1. Outputvariable*)
END_VAR

5.2.4 输入/输出变量(Input and Output Variables)


在关键字 VAR_IN_OUT 和 END_VAR 之间,可以声明 POU 中的所有输入/输出变
量。

注意:
使用这个变量,被调用变量的数值发生改变("transferred as a pointer",
第5章 编辑器(Editors)
Call-by-Reference)。这意味着这种变量的输入赋值不能是一个常量。由于这个原因,
在功能块外面通过<functionblockinstance><in/outputvariable> 不能直接读或写功
能块的 VAR_IN_OUT 变量。

例如:
VAR_IN_OUT
inout1:INT; (* 1. Inputoutputvariable *)
END_VAR

5.2.5 局部变量(Local Variables)


在关键字 VAR 和 END_VAR 之间,可以声明 POU 中的所有局部变量。这些变量
无外部连接;即它们不能从外面被写。

例如:
VAR
loc1:INT; (* 1. Local Variable*)
END_VAR

5.2.6 其它
一些变量能够在整个程序的运行周期中始终保持它们的数值。其包括保持变量和持久
变量。
保持变量使用关键字 RETAIN 来确定。这些变量甚至当控制器在不可控制性停止或
复位后仍维持它们的值。当程序再次运行时,所存储的数值将继续使用。实际例子:掉电
后,定时器重新开始计时。
而其它所有变量重新初始化为已设定的初始化数值或标准默认初始值。
持久变量用关键字 PERSISTENT 来确定。与保持变量不同,这些变量甚至在冷启动
(控制器关闭后再按顺序重新启动或下载之后重新启动)以后仍保持它们的值。 持久变
量不是自动地保持变量!

例如:
VAR RETAIN
rem1:INT; (* 1. Retain variable*)
END_VAR

5.2.7 常量(Constants),直接数值(Typed Literals)


常量用关键字 CONSTANT 来确定,可以声明为局部常量或全部常量。

语法结构:
VAR CONSTANT
<Identifier>:<Type> := <initialization>;
第5章 编辑器(Editors)
END_VAR

例如:
VAR CONSTANT
con1:INT:=12; (* 1. Constant*)
END_VAR

在在线帮助章节中的运算数(Operands)章节部分,可以查到一个常量清单。也可
以看到相关的使用直接数值的可能性 (Typed Literals)。

5.2.8 外部变量(External variables)


输入到 POU 的全局变量用关键字 EXTERNAL 来指定。在线模式下,可显示在声明
部分的 Watch 窗口中。
如果 VAR_EXTERNAL 声明与全局声明不匹配,就会出现以下错误信息:"Declaration
of '<var>' does not match global declaration!"
如果全局变量不存在,就会出现以下错误信息:"Unkown global variable: '<var>'!"

例如:
VAR EXTERNAL
var_ext1:INT:=12; (* 1st external variable *)
END_VAR

5.2.9 关键字(Keywords)
在所有编辑器中,关键字用大写字母来写。关键字不可以用作变量名。

5.2.10 变量声明(Variables declaration)


变量声明的语法结构如下:
<标识符> {AT <地址>}:<类型> {:=<初始值>};

大括号 {} 里的部分是可选的。
关于标识符,它是变量的名字,应注意的是它不能包含空格或变音符号,不能被重复
声明,不能与任何关键字相同。变量名中的大小写字母被忽略,即VAR1,Var1 和 var1 是
同一变量。标识符中的下划线是有意义的,举例来说:A_BCD 和 AB_CD 被认为是不同
的标识符。不允许在标识符的开始或中间有多个连续的下划线。标识符的长度没有限制。
所有变量和数据类型的声明可以包含初始值,用 赋值运算符":="表示。对于基本类
型的变量来说,这些初始值是常量。所有变量默认的初始值是0。

例如:
var1:INT:=12; (* Integer variable with initial value of 12*)

如果想把变量直接连接到一个指定的地址,必须用关键字AT声明。
第5章 编辑器(Editors)
使用快捷模式可以快速进行声明。
在功能块中,可以使用不完全地址描述来指定变量。为了在局部实例中使用这样的变量,
在变量配置(VAR_CONFIG)中必须配置相关条目。
注意使用自动声明的可能性。
标识符以一个字母或一个下划线开始,由字母、数字和下划线组成。
变量标识符不能包含空格或特殊符号,不能被多次声明,不能与任何关键字相同。不识
别大小写字母,也就是说 VAR1,Var1和var1 是同一个变量。在标识符中允许有下划线(例
如:"A_BCD" 和 "AB_CD" 是两个不同的标识符)。标识符只能有一个下划线。前面的32个
字符有效。

5.2.11 AT 声明(AT Declaration)


如果你需要为变量分配一个指定的地址,则必须用关键字 AT 声明这个变量。其优点
是可以给地址分配一个有意义的名字,输入或输出信号的任意改变只能在一个地方进行
(例如:在声明部分)。
值得注意的是,输入变量不能被写访问。另一个限制是 AT 声明只限于局部变量和全
局变量,而不能用于 POU 中的输入和输出变量。

例如;
counter_heat7 AT %QX0.0: BOOL;
lightcabinetimpulse AT %IX7.2: BOOL;
download AT %MX2.2: BOOL;

提示:
如果布尔变量被分配给一个字节、一个字或一个双字的地址,那么它的布尔值 TRUE
或 FALSE 将占用一个字节,而不只是第一位!

5.2.12 ‘Insert’ 'Declarations keywords'


使用这个命令可打开一个包含所有关键字的列表,这些关键字可用于 POU 的声明部
分。选择一个关键字并确认后,它将插入到当前指针位置。
执行 Input Assistant (<F2>),打开一个列表,选择声明(Declarations)类别。

5.2.13 ‘Insert’ 'Type'


使用这个命令可以选择变量的声明类型。执行Input Assistant (<F2>),将得到一个列
表。
数据类型可分为以下几种:
·标准类型(Standard types) BOOL, BYTE, 等
·定义类型(Defined types) 结构类型,枚举类型,等
·标准功能块(Standard function blocks) 实例声明
·定义功能块(Defined function blocks) 实例声明
PROSYD 1131 支持所有IEC1131-3标准数据类型。
第5章 编辑器(Editors)

5.2.14 语法颜色(Syntax Coloring)


在所有编辑器中,你可以在执行过程中和变量声明时看到这个显示。由于文本按颜色
显示,因此可避免错误或可快速查找错误。
例如:当注释的左侧未闭合时,该注释说明可立即被发现例如关键字将不会被偶然拼
错等情况。
下列颜色将被使用:
蓝色 关键字
绿色 文本编辑器中的注释
粉红色 专用常量 (例如:TRUE/FALSE,T#3s,%IX0.0)
红色 输入错误 (例如:无效的时间常量,关键字,用小写字母拼写
等等)
黑色 变量,常量,赋值运算符等等

5.2.15 快捷模式(Shortcut Mode)


PROSYD 1131 声明编辑器允许使用快捷模式。当你使用 <Ctrl><Enter> 键结束一
行时,这个模式被激活。
下列快捷方式是支持的:
·一行中的所有标识符都成为变量声明标识符。
·声明的类型由该行最后一个标识符确定。下列类型可以使用:
B 或 BOOL 给出结果 BOOL
I 或 INT 给出结果 INT
R 或 REAL 给出结果 REAL
S 或 string 给出结果 STRING
·如果没有给定类型,那么该类型为 BOOL,且最后一个标识符不作为类型使用(例1.)。
·根据声明的类型,每个常量将成为一个初始化值或一个字符串(例2. 例3.)。
·一个地址(如 %MD12) 被放置在AT 声明之后(例4.)。
·分号(;)后的文本是注释(例4.)。
·行中的所有其它符号都被忽略(例5中的惊叹号)。

例如:
快捷方式 声明
A A: BOOL;
ABI2 A, B: INT := 2;
ST S 2; A string ST:STRING(2); (* A string *)
X %MD12 R 5 Real Number X AT %MD12: REAL := 5.0;(* Real Number
*)
B! B: BOOL;

5.2.16 自动声明(Auto declaration)


如果在‘Project’‘Options’对话框的‘Editor’类别中设置了自动声明选项, 那么在所有编辑
器中,当输入一个未声明的变量后将显示一个对话框。在这个对话框中可以声明变量。
变量声明对话框如下:
第5章 编辑器(Editors)

可以在Class组合框中选择:局部变量(VAR),输入变量( (VAR_INPUT),输出变量
(VAR_OUTPUT),输入/输出变量(VAR_INOUT)或全局变量(VAR_GLOBAL)。
通过 CONSTANT 和 RETAIN 选项,可以定义是常量还是保持型变量。
你在编辑器中所输入的变量名已显示在 Name 区域中,BOOL 已显示在 Type 区域

中。按 打开 Input Assistant 对话框,从中选择数据类型。

如果选择 ARRAY 作为变量类型,则进入 Array Boundaries 对话框。


三维中的每一维数组界限都可以输入到 Start 和 End 栏中,用鼠标点击相应的区域

就能打开其编辑区。数组类型在 Type 区域定义。通过按钮 可进入输入辅助对话框。

IEC 格式下的变量声明是通过对话框中 Type 区域设立的,点击 OK 按钮关闭Array


Boundaries 对话框。例如:ARRAY [1..5, 1..3] OF INT
在 Initial value 区域中,输入声明变量的初始值。如果是一个数组变量或结构变量,

通过按钮 或 <F2> 可打开一个专用设定初值对话框。


在设定数组初值对话框中,显示数组元素列表;用鼠标点击 ":=" 后面的区域,输入
元素的初始值。
在设定结构初值对话框中,每个组件都显示在一个树型结构中。在变量名后面的括号
中显示类型和默认的初始值;每个后面都有一个 ":="。用鼠标点击 ":=" 后边的区域,
输入初始值。如果组件是一个数组,那么用鼠标点击数组名前面的加号展开数组元素,并
编辑初始值。
用 OK 按钮关闭设定初值对话框,声明对话框中的 Initial value 区域以IEC格式显
示数组或结构的初始化值。
第5章 编辑器(Editors)

例如:
x:=5,field:=2,3,struct2:=(a:=2,b:=3)

在 Address 中,可以为所声明的变量分配一个 IEC 地址(AT 声明)。


如果需要还可以在 Cmment 中输入注释。用组合键 <Ctrl> + <Enter> 结束一行
的注释。
按 OK 按钮,声明对话框关闭,变量已经按照 IEC 语法结构输入到相应的声明编辑
器中。

提示:
变量声明对话框也可以使用命令 'Edit' 'Declare Variable' 打开。在线模式下,如果指
针指在一个变量上,使用 <Shift><F2> 可以打开自动声明窗口,显示当前变量的
相关设置。

5.2.17 声明编辑器中的行号
离线模式下,单击某个行号,整个文本行都将被标记。
在线模式下,单击某个行号,当该行包括一个结构变量的情况下,将打开或关闭这个
结构变量。

5.2.18 表格声明
如果在‘Project’‘Options’选项对话框中设置了 Declarations as table 选项,则声明编
辑器为表格形式。在选项卡-索引对话框中,可以选择变量类型记录卡并编辑变量。
每个变量都含有以下内容:
Name: 变量标识符。
Address: 如果需要,可以输入变量地址。(AT 声明)
Type: 变量类型。
Initial: 变量初始值 (":= " 之后)。
Comment: 注释。

声明编辑器的两种显示类型都可以相互切换。在线模式下,显示方式相同,均为文本
显示方式。
为了编辑一个新的变量,选择命令 'Insert' 'New Declaration'。
表格声明如下显示:
第5章 编辑器(Editors)

5.2.19 ‘Insert’ 'New Declaration'


使用这个命令可以在声明编辑器的声明表中建立一个新变量。如果当前光标位于表中
的某个区域内,则新变量将被粘贴到当前位置;否则,新变量被粘贴到表的最后。而且,
在表的最后可以使用右方向键或 TAB 键粘贴一个新的声明。
这样可以得到一个变量,Name 域中的"Name",Type域中的"Bool" 作为它的默认设
置。你可以更改这些值,对于一个完整的变量,名字和类型是必需的。

5.2.20 标记指令(Pragma instruction)


标记指令可改变关于编辑处理的变量属性。它可在声明编辑器的独立一行中或自身行
中以辅助文本的方式使用。
标记指令位于大括号中:{ <Instruction text> }
如果编译器不能解释该指令文本,则整个标记指令作为注释处理。然而会有一个警告
发布:"Ignore compiler directive .<Instruction text>.!"
根据标记指令的类型和内容,其可在自身行或所有随后的行上操作,直到它被一个适
当的标记指令结束,或同一附注使用不同的参数执行时,或到达文件最后时。我们按文件
分为:声明部分,指令部分,全局变量列表,类型声明。
左括号后立即跟随一个变量名。左括号和右括号必须在同一行。
下列附注可以使用:
{flag [<flags>] [off|on]}
<flags> 可以是以下标记的组合:
noinit: 变量将不被初始化。
nowatch: 变量不能被监控。
noread: 没有读许可,变量导出至符号文件。
nowrite: 没有写许可,变量导出至符号文件。
noread, nowrite: 变量不被输出到符号文件。
使用"on" 修饰符,标记指令可运行在所有后来的变量声明中,直到被附注{flag off}
结束,或被另一个{flag <flags> on} 附注覆盖。
没有"on"或"off" 修饰符,标记指令只能运行在当前变量声明中。

例如:
变量 a 将不被初始化并不被监控。变量 b 将不被初始化:
VAR
第5章 编辑器(Editors)

a : INT {flag noinit, nowatch};


b : INT {flag noinit };
END_VAR

VAR
{flag noinit, nowatch on}
a : INT;
{flag noinit on}
b : INT;
{flag off}
END_VAR

两个变量都不被初始化:
{flag noinit on}
VAR
a : INT;
b : INT;
END_VAR

{flag off}
VAR
{flag noinit on}
a : INT;

b : INT;
{flag off}
END_VAR

在有读和(/或)写许可的POU中,标记 "noread" 和 "nowrite"可用于为所选择的变量提供具有


有限访问权限。变量的默认设置与POU中所声明的变量设置相同。如果变量既没有读许可也没有写许
可,那么它将不被导出至符号文件。

例如:
如果 POU 已经具有读和写的许可,则下列附注变量 a 只具有写许可的输出,而变量
b 根本不能被输出:

VAR
a : INT {flag noread};
b : INT {flag noread, nowrite};
END_VAR

VAR
{ flag noread on}
a : INT;
第5章 编辑器(Editors)

{ flag noread, nowrite on}


b : INT;
{flag off}
END_VAR

变量 a 和 b 都不能输出到符号文件:
{ flag noread, nowrite on }
VAR
a : INT;
b : INT;
END_VAR

{flag off}

VAR
{ flag noread, nowrite on}
a : INT;
b : INT;
{flag off}
END_VAR

在下面的所有变量声明中,标记指令执行相加(additively)作用。

例如:(所有使用中的 POU 都具有读和写的许可,可以输出)

a : afb;
...
FUNCTION_BLOCK afb
VAR
b : bfb {flag nowrite};
c : INT;
END_VAR
...

FUNCTION_BLOCK bfb
VAR
d : INT {flag noread};
e : INT {flag nowrite};
END_VAR

"a.b.d": 不允许输出。
"a.b.e": 仅当具有读许可时输出。
"a.c": 当具有读和写的许可时输出。
第5章 编辑器(Editors)

5.2.21 在线模式下的声明编辑器
在线模式下,声明编辑器转变为一个监控窗口。每行中的变量后面都跟有等号(=)和变
量值。如果变量没有被定义,就会有三个问号(???)出现。对于功能块,只有打开实例时才
会显示值(命令:'Project' 'Open instance')。
在每个多元素变量之前都有一个加号(+)。通过按 <Enter> 键或双击这个变量可打
开,该变量。

在例子中,交通信号灯结构将打开。

当打开一个变量后,其所有组件都会列在其后。变量前出现减号(-)。如果再次双击或按 <Enter>,
变量就会关闭,又重新显示加号(+)。
按 <Enter> 键或双击一个单元素变量打开对话框去写变量。在这里可以改变变量的
当前值。如果是布尔变量,则无对话框显示;这些变量可以被触发。
新值以绿色显示在变量之后的尖括号里,且不可以更改。如果给出命令 'Online' 'Write
values',那么所有被放置到选择列表中的变量都再次显示为黑色。
如果给出命令 'Online' 'Force values',那么所有变量将被设置为已选择的值,直到
'Release force' 命令被给出。在这种情况下,强制值的颜色都变为红色。
第5章 编辑器(Editors)

5.3 文本编辑器
用于 PROSYD 1131 指令部分的文本编辑器(语句表编辑器和结构文本编辑器)具有通用
Windows文本编辑器功能。
文本编辑器中的程序指令是由语法颜色支持。
在覆盖模式下,状态栏会显示一个黑色的OV。通过按键 <Ins> 可以选择覆盖模式或插入模式。

在上下文菜单中可以找到许多重要命令(按鼠标右键或 <Ctrl>+<F10>)。
文本编辑器可使用以下菜单命令:

5.3.1.1 文本编辑器中的 'Insert''Operators'

使用这个命令,显示一个包含所有运算符的对话框。
如果选择其中一个运算符,点击OK关闭列表,那么在当前光标所在位置插入该运算符。

5.3.1.2 文本编辑器中的 'Insert''Operand'

使用这个命令,显示一个包含所有变量的对话框。可以选择显示全局、局部或系统变
量列表。
如果选择其中一个运算数,点击OK关闭对话框,那么在当前光标所在位置插入该运算数。

5.3.1.3 文本编辑器中的 'Insert''Function'

使用这个命令,显示一个包含所有功能的对话框。可以选择用户自定义功能或标准功
能列表。
第5章 编辑器(Editors)
如果选择其中一个功能,点击OK 关闭对话框,那么在当前光标所在位置插入该功能。
如果在对话框中选择With arguments 选项,那么必要的输入和输出变量也将被插入。

5.3.1.4 文本编辑器中的 'Insert''Function Block'

使用这个命令,显示一个包含所有功能块的对话框。可以选择用户自定义功能块列表
或标准功能块列表。
如果选择其中一个功能块,点击OK 关闭对话框,那么在当前光标所在位置插入该功能块。
如果在对话框中选择 With arguments 选项,那么该功能块的输入变量也将被插入。

5.3.1.5 在文本编辑器中调用具有输出参数的 POU

在文本语言IL和ST中,被调用POU的输出参数可以被直接赋值。例如:afbinst 的输出
参数 out1 被赋值给变量a。

IL:
CAL afbinst(in1:=1, out1=>a)

ST:
afbinst(in1:=1, out1=>a);

5.3.1.6 在线模式下的文本编辑器

编辑器在线功能是设置断点及单步处理。因而连同监控功能一起,用户拥有了现代
Windows标准编程语言调试器的功能。
在线模式下,文本编辑器窗口被垂直平分为两部分。在窗口左侧显示标准程序文本,在窗口右侧
显示变量,变量的值在相应行中被改变,与声明部分中的显示相同。这意味着,当 PLC 运行时,显
示每个变量的当前值。
当监控表达式或位地址(Bit-addressed)变量时应注意以下问题:对于表达式来说,
整个表达式的值总是被显示的。例如:如果 a 和 b 都为 TRUE,则 a AND b 显示为蓝
色或用 ":=TRUE" 表示。对于位地址变量来说,地址的位值总是被显示(例如:如果 a 的
值为4,则 a.3 显示为蓝色或用":=TRUE"表示)。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都会在提示框中
显示。

5.3.1.7 ‘Extras’ 'Monitoring Options'

使用这个命令可以配置监控窗口。在文本编辑器中,监控状态下的窗口被平分为两部
分。程序位于左侧部分。在右侧部分,所有位于相应程序行中的变量都被监控。
你可以指定监控窗口的宽度和一行中的两个变量之间的距离。距离的声明单位“1”相当于所选字
体的行高。

监控选项对话框如下:
第5章 编辑器(Editors)

5.3.1.8 文本编辑器中的断点位置

因为在 PROSYD 1131 中,若干个 IL 指令行被组合到一个C-code 行上,所以断点


不能设置在每个行上。程序中,断点位置包括程序中变量值能被改变的位置或程序流程分
支结束的位置。(例外:功能调用。如果必需,功能中的断点必须在这儿设置。) 其它位
置的断点将没有任何意义,因为在这种断点位置上数据无任何变化。
在 IL 中的断点位置:
·在 POU 的开始
·在每个 LD, LDN 处 (或者,如果一个 LD 位于一个标签,那么断点就在标签处)
·在每个 JMP, JMPC, JMPCN 处
·在每个标签处
·在每个 CAL, CALC, CALCN 处
·在每个 RET, RETC, RETCN 处
·在 POU 的结束

在ST中的断点位置:
·在每个赋值语句处
·在每个 RETURN 和 EXIT 语句处
·在条件判断行(WHILE, IF, REPEAT)
·在 POU 结束处

在项目选项中可设置断点位置标记,通过颜色在行号区域标出。例如:带有断点位置
(暗色行号)的 IL 编辑器。

5.3.1.9 如何设置断点?

为了设置断点,点击想要设定断点的行的数码区域。如果所选区域是一个断点位置,
那么行号区的颜色将从暗灰色变为亮蓝色,并且断点将在 PLC 中激活。
第5章 编辑器(Editors)

5.3.1.10 删除断点

相反,若要删除断点,只需用鼠标点击已设置断点的行号区。
断点的设置和删除也可以通过菜单选择('Online' 'Toggle Breakpoint'),或通过功能键
<F9> 选择,或通过工具条的图标选择。

5.3.1.11 断点处发生什么?

在 PLC 中,如果程序运行到断点处,则屏幕在相应行上显示中断,其行号区显示为
红色。PLC 中的用户程序停止。
如果程序处于断点位置,则使用 'Online' 'Run' 命令,程序可重新运行。
另外,使用 'Online' 'Step over' 或 'Step in' 可以使程序运行到下一个断点位置。如果
所在位置是一个 CAL 命令,或者,如果在该行指令中有一个功能调用指向下一个断点位
置,则你可以使用 'Step over' 以绕过功能调用。使用 'Step in' 以转到打开的 POU。

5.3.1.12 文本编辑器中的行号

文本编辑器中的行号是指为 POU 中的每一行所给出的编号。


离线模式下,单击行号将标记整个文本行。
在线模式下,行号的背景颜色指示每行的断点状态。颜色的标准设置为:
·暗灰色:该行为可以设置断点的位置。
·亮蓝色:该行已设置了断点。
·红色:程序已运行到这个断点。
在线模式下,单击鼠标将改变这行的断点状态。

5.3.2 IL 编辑器
在相应的 PROSYD 1131 编辑器中,如何使用 IL 编写 POU 。
第5章 编辑器(Editors)

POU 中的所有编辑器都由声明部分和主体部分组成。由屏幕分隔线分开。
IL 编辑器具有通用Windows文本编辑器功能。其主要命令可在上下文菜单(按鼠标右
键或 <Ctrl>+<F10> )中找到。多重 POU 调用是可以的。例如:
CAL CTU_inst(
CU:=%IX10,
PV:=(
LD A
ADD 5
)
)

关于语言的信息参看 Instruction List (IL)。

5.3.2.1 在线模式下的 IL

使用 'Online' 'Flow control' 命令,在IL编辑器中每行的左侧插入一个附加区域显示存


储器内容。
关于 IL 编辑器在线模式下的更多信息参看 '在线模式下的文本编辑器'。

5.3.3 ST 编辑器
在相应的 PROSYD 1131 编辑器下,如何使用 ST 编写 POU :
第5章 编辑器(Editors)

POU 中的所有编辑器都是由声明部分和主体部分组成。由屏幕分隔线分开。
ST 编辑器具有通用Windows文本编辑器功能。其主要命令可在上下文菜单(按鼠标右
键或 <Ctrl>+<F10> )中找到。
关于语言的信息,请参看‘Structured Text (ST)’。

5.4 图形编辑器
面向图形的语言编辑器:顺序功能图 SFC、梯形图 LD、功能块图 FBD 以及自由图形功能块图
都有许多共同点。在下面的章节中将总结这些特点,并专门对LD、FBD、CFC 以及 SFC 进行介绍。
图形编辑器中的执行程序是由语法颜色来支持的。

5.4.1.1 缩放(Zoom)

对象,如 POU、动作、转换等,在编程语言 SFC、LD、FBD、CFC 以及可视化显示


中都能使用缩放功能进行放大或缩小。指令部分窗口内容中的所有组件的都会受影响,声
明部分保持不变。
标准形式下,每个对象按100%缩放标准显示。所设置的缩放标准作为一个对象属性
存储在项目中。
项目文件的打印总是在100%的显示标准下进行!
缩放标准可通过工具栏中的一个选项列表来设定。选择范围为25% ~ 400%;在10%
~ 500% 范围内的个别值可手工输入。
只有当指针停留在用图形语言创建的对象或可视化对象上时,缩放标准选择列表才有
第5章 编辑器(Editors)
效。
对于缩放对象,编辑器中的指针位置可被进一步选择并且甚至使用方向键以达到范围。
文本尺寸由缩放因素和设定的字体大小来决定。
在所有缩放标准中,指针位置上有效的编辑器菜单功能的使用特征是相同的。
在线模式下,每个对象都按照所设定的缩放标准显示;在线功能不受限制。
当使用 InetlliMouse 时,按 <CTRL> 键并且同时向前或向后滚动滚轮,就可以放大或缩小对
象。

5.4.1.2 网络(Network)

在 LD 和 FBD 编辑器中,在网络列表里编写程序。网络的左边标有连续的网络序号。
每个网络都是由逻辑、算术表达式、程序、功能或功能块调用、跳转、返回指令构成的。

5.4.1.3 标签(Label)

每个网络都有一个标签,可以任意为空。在网络的第一行直接靠近网络序号的位置点
击鼠标,现在你便可以输入一个标签。

5.4.1.4 网络注释,'Extras' 'Options'

每个网络都可提供多行注释。在 'Extras' 'Options' 中,你可以输入用于定义网络注


释的最大行数。这个值输入在最大注释尺寸( maximum comment size)区域中(默认
值为4)。你还可以输入通常为注释所保留的行数,即最小注释尺寸(minimum comment
size)。例如:如果输入2,那么在每个网络的开始,标签行后,将有两个空行。这里的默
认值为0,因此在屏幕上就可以显示更多的网络。
如果最小注释尺寸大于0,那么仅需单击注释行并输入注释即可。否则,你必须选择网
络并使用 'Insert' 'Comment' 命令插入注释行。与程序文本相比,注释以灰色显示。

5.4.1.5 'Insert' 'Network (after)' 或 'Insert' "Network (before)"

快捷键: <Shift>+<T>
为了在 FBD 或 LD 编辑器中插入一个新网络,选择 'Insert' 'Network (after)' 或
'Insert' 'Network (before)' 命令,可以在当前网络之前或之后插入一个新网络。点击网络序
号就可以修改当前网络。通过序号下面的虚线矩形框来识别。按 <Shift> 键并同时用鼠
标点击网络,便可以选择整个网络范围。

5.4.1.6 在线模式下的网络编辑器

在 FBD 和 LD 编辑器中,只能为网络设置断点。设有断点的网络的序号区显示为蓝
色。程序处理在设定断点的网络前停止。这时,网络序号区域显示为红色。使用单步处理,
可以从一个网络跳到另一个网络。
POU (程序组织单元)中的所有值都处于监控状态。
当监控表达式或位地址(Bit-addressed)变量时应注意以下问题:对于表达式来说,
例如:a AND b 用于转换条件或功能块输入, 其整个表达式的值总是被显示 ( 如果 a 和
第5章 编辑器(Editors)
b 都为 TRUE,则 a AND b 显示为蓝色或采用 ":=TRUE" 表示)。对于位地址变量来说,
地址的位值总是被显示(例如:如果 a 的值为4,则 a.3 显示为蓝色或采用":=TRUE"表
示)。
使用 'Online' 'Flow control' 命令来运行流量控制功能。使用流量控制,你可以观察网
络上通过连接线传送的当前值。如果连接线所传送的不是布尔值,那么这个值将显示在一
个专用区域里。未使用变量监控区显示灰色。如果连接线传送布尔值并且结果为 TRUE,
则该连接线显示为蓝色。因此当 PLC 运行时,可以观察到信息的“流动” 。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都将在提示框中
显示。

5.4.2 FBD 编辑器


在相应的 PROSYD 1131 编辑器中,如何使用 FBD 编写 POU:

FBD 编程器是一个图形编辑器。 包含一系列网络,每个网络都是由以下部分构成的:


逻辑或算术表达式,功能块、功能、程序、跳转,或返回指令。在上下文菜单(用鼠标右
键或 <Ctrl>+<F10>)中可找到一些重要命令。

5.4.2.1 FBD 中的指针位置

每个文本都能使用鼠标选择。所选择的文本显示在蓝色背景下时可更改。
你也可以通过一个虚线矩形框来识别当前指针位置。下面用例子列出所有可能的指针
位置:
第5章 编辑器(Editors)
1) 每个文本区域 (外加黑框的为可能的指针位置):

2) 每个输入端:

3) 每个运算符、功能或功能块:

4) 输出端,其后面有一个赋值语句或跳转语句:

5) 赋值语句,跳转语句或返回语句上面的交叉线:

6) 每个网络右侧最远对象的后面("最后的指针位置",与选择网络所使用的指针位置相
同):

7) 赋值语句前面的交叉线:

5.4.2.2 在 FBD 中如何设定指针

通过点击鼠标或在键盘的帮助下,指针能被设定在某个位置。
任何时候使用方向键都可以跳到最近的指针位置。包括文本区域在内的所有指针位置,
都可以通过这种方法来访问。如果选择最近的指针位置,使用 <up> 或 <down> 方向
键便可选择前面或后面网络中的最近指针位置。
空网络中只包含三个问号 "???"。点击其后部,就可以选择最近的指针位置。
第5章 编辑器(Editors)

5.4.2.3 在 FBD 中的 'Insert' 'Assign'

图标: 快捷键:<Ctrl>+<A>
这个命令用于插入一个赋值。
基于所选的位置 (参看 ' FBD 中的指针位置'),赋值语句在所选输入端的前面直接插
入(指针位置2),在所选输出端的后面直接插入(指针位置4),或在网络的最后插入(指针位
置6)。
伴随输入文本 "???",一个赋值语句被插入且可被一个变量所代替。在这里也可以使
用输入帮助。
为了将另一个赋值语句插入到一个已存在的赋值语句,使用 'Insert' 'Output' 命令。

5.4.2.4 在 FBD 中的 'Insert' 'Jump'

图标: 快捷键:<Ctrl>+<L>
使用这个命令插入一个跳转。
基于所选的位置 (参看 ' FBD 中的指针位置'),跳转语句在所选输入端的前面直接插
入(指针位置2),在所选输出端的后面直接插入(指针位置4),或在网络的最后插入(指针位
置6)。
伴随输入文本 "???",一个跳转语句被插入且可被一个标签所代替。

5.4.2.5 在 FBD 中的 'Insert' 'Return'

图标: 快捷键:<Ctrl>+<R>
使用这个命令插入一个返回语句。
基于所选的位置 (参看’FBD’ 中的指针位置'),返回语句在所选输入端的前面直接插入
(指针位置2),在所选输出端的后面直接插入(指针位置4),在所选交叉线的前面插入(指
针位置5)或在网络的最后插入(指针位置6)。

5.4.2.6 在 FBD 中的 'Insert' 'Box'

图标: 快捷键:<Ctrl>+<B>
使用这个命令可以插入运算符,功能,功能块和程序。首先,它总是插入一个 "AND"
运算符。选择并修改类型文本(“AND”),可转变为其它运算符,功能,功能块和程序。。
使用输入帮助(<F2>),来选择需要的 POU。
在功能和功能块中,显示输入和输出端的参数名。
在功能块上方有一个可编辑实例区。如果通过改变文本调用另一个不可知功能块,则
显示一个具有两个输入端的操作盒及其所选择的功能块类型。如果选择这个实例区,通过
<F2>可打开具有变量选择类别的输入帮助(Input Assistant)对话框。
第5章 编辑器(Editors)

在所选位置插入最新的 POU:
·如果选择一个输入(指针位置2),那么在这个POU 将插入到这个输入端的前面。这个
POU 的第一个输入连接到所选输入左边的分支上。新 POU 的输出连接到所选的输入上。
·如果选择一个输出(指针位置4),那么在这个输出之后插入 POU。这个 POU 的第一
个输入与所选输出相连。新POU 的输出连接到所选分支上。
·如果一个POU、一个功能或一个功能块被选择(指针位置 3),则老的组件将被新的
POU 所取代。
·在取代之前,将被连接的分支与它们相同。如果老组件的输入比新的多,则这个不可
附加分支将被删除。输出同样保持真值。
·如果一个跳转或一个返回被选择,那么在跳转或返回之前插入 POU。这个 POU 的
第一个输入使用分支连接到所选组件的左边。POU 的输出连接到所选组件右边的分支。
·如果选择网络最后的指针位置 (指针位置 6),则在最后组件的后面插入 POU。这个
POU 的第一个输入连接到在所选位置左边的分支。
所有没有连接的POU输入将用 "???" 表示。点击这个文本,将其改为常量或变量。
如果已插入POU 的右边有一个分支,则这个分支将被分配给POU的第一个输出。

5.4.2.7'Insert' 'Input'

图标: 快捷键:<Ctrl>+<U>
使用这个命令可插入一个输入运算数。对于许多运算符来说,输入的数量是可变的。(例
如:ADD 可以有两个或更多输入。)
为了通过一个输入扩展一个运算符,你需要在希望插入另一个输入的位置前面(指针位
置1)选择输入;如果希望添加的输入端位于最底端 (参看 'FBD 中的指针位置'),你必须
选择运算符本身(指针位置3)。
刚插入的输入用 "???" 表示。点击它并将其改为希望的常量或变量。在这里也可以使
用输入帮助。

5.4.2.8'Insert' 'Output '

图标:
这个命令用于在已存在的赋值语句里插入另一个赋值语句。也就是所谓的“梳型” 赋
值。
如果选择赋值语句上面的交叉线(指针位置5) 或它前面位置(指针位置4),则在已存在
的赋值之后插入另一个赋值。
如果选择赋值前的交叉线(指针位置4),则在它的前面插入另一个赋值。
刚插入的输出用 "???" 表示。点击它并将其改为希望的变量。在这里也可以使用输入
帮助。
第5章 编辑器(Editors)

5.4.2.9'Extras' 'Negate'

图标: 快捷键: <Ctrl>+<N>


使用这个命令可以对输入,输出,跳转或返回语句取反。取反符号为连接处的一个小
圆圈。

如果选择一个输入(指针位置2) (参看 'FBD 中的指针位置'),则这个输入将被取反。


如果选择一个输出(指针位置4),则这个输出将被取反。
如果选择一个跳转或返回,则这个跳转或返回的输入将被取反。
再一次取反可以取消原来的取反操作。

5.4.2.10'Extras' 'Set/Reset'

图标:
使用这个命令可以将输出定义为置位或复位输出。置位输出用 [S] 显示,复位输出用
[R] 显示。
FBD 中的置位/复位输出

如果条件为TRUE,则Output Set置位为TRUE。输出维持这个值,即使条件返回FALSE。
如果条件为FALSE,则Output Reset置位为FALSE。输出维持这个值,即使条件为返
回FALSE。
重复执行命令,输出将在置位、复位和正常输出之间切换。

5.4.2.11 FBD 中的剪切,复制,粘贴和删除

在 'Edit' 菜单条下可以使用 'Cut', 'Copy', 'Paste' 和 'Delete' 命令。


如果选择一个交叉先(指针位置5) (参看 'FBD 中的指针位置'),那么位于交叉线下面
的赋值,跳转或返回都将被剪切,删除或复制。
如果选择一个 POU (指针位置3),那么所选对象自身连同分支都将被剪切,删除或复
第5章 编辑器(Editors)
制,第一个分支(最高位置的)除外。
另外,位于指针位置前面的整个分支都将被剪切,删除或复制。
复制或剪切执行完成后,位于剪贴板里的删除或拷贝部分可以在希望的地方进行粘贴。
粘贴前,首先选择粘贴的位置。正确的粘贴位置包括输入和输出。
如果一个POU已装入剪贴板 (一个提示:除第一个以外的所有连接分支都位于剪贴板
上),则第一个输入与粘贴位置之前的分支相连。
否则,粘贴位置前的所有分支都将被剪贴板上的内容取代。
在这种情况下,最后的粘贴组件与粘贴位置前的分支连接。

提示:
剪切和粘贴可解决以下问题:在网络中间插入1个新运算符。位于运算符右边的分支已
与第1个输入相连,但它应连接到第2个输入上。现在,选择第1个输入并执行命令
'Edit' 'Cut'。接下来,选择第2个输入并执行命令 'Edit' 'Paste'。这样,分支现在位
于第2个输入上。

5.4.2.12 在线模式下的 FBD

在 FBD 中,断点只能设在网络上。如果一个网络已经设置了断点,则网络序号区域
将显示为蓝色。程序在设置断点的网络前停止。在这种情况下,网络序号区域变为红色。
使用单步操作,可以从一个网络跳到另一个网络。
每个变量的当前值都显示。例外:如果功能块的输入是一个表达式,则表达式中,只
有第一个变量被监控。
双击变量可以打开一个对话框并编辑这个变量。在此可以更改变量的当前值。如果是
布尔变量,则不会出现对话框;这些变量的值只能为TRUE或FALSE。
新值将转为红色并保持不变。如果使用'Online' 'Write values'命令,那么所有的变量都
传送到选择表里并且再次显示为黑色。
使用 'Online' 'Flow control' 命令启动流量控制。使用流量控制,你可以观察在网络中
通过连接线正在传送的当前值。如果连接线所传送的不是布尔量,则这个值将显示在一个
专用插入区域中。如果连接线传送布尔量且值为 TRUE,则显示为蓝色。因此当 PLC 运
行时,可以观察到信息的“流动” 。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都将在提示框中
显示。
第5章 编辑器(Editors)

5.4.3 梯形图编辑器

在 PROSYD 1131 编辑器中,使用 LD 如何编写一个 POU:


所有POU编辑器都由声明部分和主体部分组成。由屏幕分隔线分开。
LD 编辑器是一个图形编辑器。在上下文菜单中(用鼠标右键或 <Ctrl>+<F10> )可找
到一些重要命令。
关于组件的信息,参看梯形图 (LD)。

5.4.3.1 LD 编辑器中的指针位置

下列位置可以是一个指针位置,在这里,功能块和程序访问可以作为触点处理。具有
EN 输入端的POU和其它连接到它们的POU按照与在FBD中相同的方式处理。关于编辑网
络部分的信息可在FBD编辑器章节中找到。
1.每个文本区域 (外加黑框的为可能的指针位置):

2.每个触点或功能块
第5章 编辑器(Editors)

3. 每个线圈

4. 触点和线圈间的连接线

LD 可使用以下菜单命令:

5.4.3.2 LD 中的 'Insert' 'Contact'

图标: 快捷键:<Ctrl>+<O>
在 LD 编辑器中用这个命令可以在网络所标的位置插入一个触点。
如果所标的位置为一个线圈或为触点与线圈间的连接线,那么新触点将与前一个触点
串行连接在一起。
新触点用预置文本"???" 表示。点击该文本并将其更改为希望的变量或常量。在此可
以使用输入帮助。

5.4.3.3 ‘Insert’ 'Parallel Contact'

图标: 快捷键:<Ctrl>+<R>
在 LD 编辑器中使用这个命令可以在网络所标的位置插入一个并联的触点。
如果所标的位置是一个线圈或是触点与线圈间的连接,那么新的触点将并联到先前所
有触点连接上。
新触点用预置文本 "???" 表示。点击该文本并将其更改为希望的变量或常量。在此可
以使用输入帮助。

5.4.3.4 LD 中的 'Insert' 'Function Block'

快捷键:<Ctrl>+<B>
第5章 编辑器(Editors)
使用这个命令可以插入一个运算符,一个功能块,一个功能或一个程序。因此,必须
选中触点与线圈间的连接或线圈做标记。新建的POU初始标识为AND,你可以更改它。在
此可以使用输入帮助。标准的和自定义的 POU 都可用。
POU 的第一个输入连接到输入连接里,第一个输出连接到输出连接里,因此,这些变
量必须是布尔量。POU的所有其它输入和输出都用文本 "???" 表示。可将其更改为其它常
量,变量或地址。在此也可以使用输入帮助。

5.4.3.5 LD 中的 'Insert''Coil'

图标: 快捷键:<Ctrl>+<L>
在 LD 编辑器中使用这个命令可以将一个线圈并联到前一个线圈。
如果所标的位置是触点与线圈间的连接,则新线圈被插入到最后。如果所标的位置是
一个线圈,则新线圈将在它的上面直接插入。
新线圈的默认设置为文本 "???" 。点击该文本并将其更改为希望的变量。在此可以使
用输入帮助。

5.4.3.6 具有 EN 输入端的 POU

如果需要在 LD 网络中调用其它 POU,则必须在POU上添加EN(使能)输入端。这


个 POU 将并接到线圈上。除了这种POU以外,你可以同使用FBD一样地编辑网络。在菜
单栏 'Insert' 'Insert at Blocks' 下可以找到用于插入 EN POU 的命令。
具有 EN 输入端的运算符,功能块,程序或功能的执行方法与 FBD 中相应 POU 的
执行方法相同,只是它的执行受控于 EN 输入端。该输入端被附加到线圈与触点间的连
接线上。如果这个连接传送信息 "On",则这个 POU 将执行。
如果具有 EN 输入端的 POU 已经创建了一次,那么这个 POU 可用于创建一个网络。
这意味着,来自于通用运算符、功能和功能块的数据可进入一个 EN POU中,并且一个 EN
POU 能将数据送入其它POU 中。
因此,与使用 FBD 一样,在 LD 编辑器中,你只需在一个新建网络中插入一个 EN 运
算符。随后,从这个POU开始,你可以与使用FBD一样继续编写程序。

5.4.3.7 LD 中的 'Insert' 'Box with EN '

使用这个命令将具有EN输入端的功能块、运算符、功能或程序插入到一个LD网络中。
所标位置必须是触点与线圈间的连接(指针位置4)或线圈(指针位置3)。新 POU 并行
连接到线圈的下面;它初始为 "AND"。可以更改这个初始指定。在此可以使用输入帮助。

5.4.3.8 ‘Insert’ 'Function Block with EN'

使用这个命令可以将具有 EN 输入端的功能块插入到 LD 网络中。


所标位置必须是触点与线圈间的连接(指针位置4)或线圈(指针位置3)。新功能块并行
连接到线圈的下面。从显示的输入帮助对话框中,可以选择插入一个用户自定义功能块或
标准功能块。
第5章 编辑器(Editors)

5.4.3.9 ‘Insert’ 'Function with EN'

使用这个命令可以将具有 EN 输入端的功能插入到 LD 网络中。


所标位置必须是触点与线圈间的连接(指针位置4)或线圈(指针位置3)。新功能并行连
接到线圈的下面。从所显示的输入帮助对话框中,可以选择插入一个用户自定义功能或一
个标准功能。

5.4.3.10 LD 中的 'Insert' 'Insert at blocks'

使用这个命令可以将另一个组件插入到一个具有 EN 输入端的 POU中。该菜单栏下


的命令可以与相应于 FBD 命令一样的指针位置下执行。
使用 Input 可以在 POU 中插入一个新输入。
使用 Output 可以在 POU 中插入一个新输出。
使用 POU 可以插入一个新 POU。方法与在 'Insert' 'POU' 下的描述相似。
使用 Assign 可以插入一个赋值给一个变量。首先显示 "???" 文本,可以用变量编辑
并更改这个文本。在此,输入帮助是可用的。

5.4.3.11 LD 中的 'Insert' 'Jump'

使用这个命令可以在先前线圈的末端并联插入一个跳转语句。如果输入线的值为
"ON",则执行跳转到指定的标签处。
所标位置必须是触点与线圈间的连接线。
新跳转显示文本 "???"。点击并更改为希望的标签。

5.4.3.12 LD 中的 'Insert' 'Return'

在 LD 编辑器中,可以使用这个命令在先前线圈末端并联插入一个返回语句。如果输
入线的值为 "On",则 POU 处理被中断。
所标位置必须是触点与线圈间的连接线。

5.4.3.13 LD 中的 'Extras' 'Paste after'

在 LD 编辑器中,使用这个命令可以在标记位置后面串行插入剪贴板中的内容。如果
剪贴板中的内容和标记位置都是由触点组成的网络,则该命令可用。

5.4.3.14 LD 中的 'Extras' 'Paste below'

快捷键: <Ctrl>+<U>
在 LD 编辑器中,使用这个命令可以在标记位置下面并行插入剪贴板中的内容。如果
剪贴板中的内容和标记位置都是由触点组成的网络,则该命令可用。

5.4.3.15 LD 中的 'Extras' 'Paste above'

在 LD 编辑器中,使用这个命令可以在标记位置上面并行插入剪贴板中的内容。如果
第5章 编辑器(Editors)
剪贴板中的内容和标记位置都是由触点组成的网络,则该命令可用。

5.4.3.16 LD 中的 'Extras' 'Negate'

图标: 快捷键:<Ctrl>+<N>
使用这个命令可以对当前指针位置上的触点、线圈、跳转、返回 或 EN POU 的输入
端或输出端取反。
在线圈的圆括号之间或触点的两个直线之间,会出现一个斜杠( (/) 或 |/| )。如果是
跳转、返回或 EN POU 的输入端或输出端,则与 FBD 编辑器一样,在连接处出现一个小
圆圈。
线圈所输出的是输入连接(布尔变量)的取反值。此时,如果布尔变量具有值 FALSE,
则取反触点将输入值转换后传送给输出。
如果跳转语句或返回语句标有取反标记,则这个跳转或返回之前的输入将取反。
再一次取反可以取消原来的取反操作。

5.4.3.17 LD 中的 'Extras' 'Set/Reset'

如果选择线圈并执行这个命令,你将获得一个置位线圈。在相关的BOOL型变量中,
该线圈不会覆盖数值 TRUE。这意味着,一旦你设定这个变量值为 TRUE,它将一直保留
TRUE 值。线圈符号中含字母 "S" 表示为置位线圈。
如果再次执行这个命令,你将获得一个复位线圈。在相关的BOOL型变量中,该线圈
不会覆盖数值FALSE。这意味着,一旦你设定这个变量值为 FALSE,它将一直保留 FALSE
值。线圈符号中含字母 "R" 表示为复位线圈。
如果重复执行这个命令,线圈将在置位线圈、复位线圈和标准线圈之间切换。

5.4.3.18 在线模式下的 LD

在线模式下,LD 中处于"On" 状态的触点和线圈显示为蓝色。同样,传送"ON" 状


态的所有连线的颜色也都为蓝色。在功能块的输入和输出端显示相应变量的值。
断点只能设置在网络上;使用单步操作,可以从一个网络跳到另一个网络。
如果把鼠标暂时指在一个变量上,那么这个变量的类型、地址和注释都将在提示框中
显示。

5.4.4 SFC 编辑器


在 PROSYD 1131 编辑器中,使用SFC编写一个 POU:
第5章 编辑器(Editors)

POU 中的所有编辑器都是由声明部分和主体部分组成。由屏幕分隔线分开。
SFC编辑器是一个图形编辑器。在上下文菜单中(用鼠标右键或 <Ctrl>+<F10>)可找
到一些重要命令。在离线模式、在线模式以及缩放状态下,工具提示框显示步骤、转换、
跳转、跳转标签以及限定或关联动作的全名或表达式。
有关 SFC 的信息,请参看 '顺序功能图'。
SFC 编辑器必须适合 SFC 的特殊性。关于这些,可提供以下菜单项。

5.4.4.1 SFC 中的标记的块

标记的块是指虚线矩形框里的一串SFC元素。
通过点击鼠标或使用方向键便可选择标记一个元素(步骤、转换、或跳转)。为了同时
选择几个元素,首先选中一个块,然后按住 <Shift> 键,同时用鼠标点击元素组的左下
角或右上角的元素,便可选择一个元素组。
当与语言规定没有冲突时,所有的命令才能执行。

5.4.4.2 ‘Insert’ 'Step Transition (before)'

图标: 快捷键:<Ctrl>+<T>
在 SFC 编辑器中,使用这个命令可以在标记的块之前插入一个步骤,其后跟随一个
转换。
第5章 编辑器(Editors)

5.4.4.3 ‘Insert’ 'Step Transition (after)'

图标: 快捷键: <Ctrl>+<E>


在 SFC 编辑器中,使用这个命令可以在标记的块之后插入一个步骤,其后跟随一个
转换。

5.4.4.4 ‘Insert’ 'Alternative Branch (right)'

图标: 快捷键: <Ctrl>+<A>


在 SFC 编辑器中,使用这个命令可以插入一个选择型分支作为标记的块的右分支。
对于这个标记的块,必须以转换作为开始和结束。新分支由一个转换组成。

5.4.4.5 ‘Insert’ 'Alternative Branch (left)'

图标:
在 SFC 编辑器中,使用这个命令可以插入一个选择型分支作为标记的块的左分支。
对于这个标记的块,必须以转换作为开始和结束。新分支由一个转换组成。

5.4.4.6 ‘Insert’ "Parallel Branch (right)"

图标: 快捷键:<Ctrl>+<L>
在 SFC 编辑器中,使用这个命令可以插入一个并行分支作为标记的块的右分支。对
于这个标记的块,必须以步骤作为开始和结束。新分支由一个步骤组成。为了能够跳到已
创建的并行分支,必须提供跳转标签。

5.4.4.7 ‘Insert’ 'Parallel Branch (left)'

图标:
在 SFC 编辑器中,使用这个命令可以插入一个并行分支作为标记的块的左分支。对
于这个标记的块,必须以步骤作为开始和结束。新分支由一个步骤组成。为了能够跳到已
创建的并行分支,必须提供跳转标签。(参看 'Extras' 'Add label to parallel branch')。

5.4.4.8 ‘Insert’ 'Jump'

在 SFC 编辑器中,使用这个命令在分支末尾插入一个跳转。这个分支必须是选择型
分支。
可以选中插入跳转中的字符串 'Step' 并使用步骤名或并行分支跳转标签替换。
第5章 编辑器(Editors)

5.4.4.9 ‘Insert’ 'Transition-Jump'

图标:
在 SFC 编辑器中,使用这个命令在所选分支的末尾插入一个转换,其后跟随一个跳
转。这个分支必须是一个并行分支。
可以选中插入跳转中的字符串 'Step' 并使用步骤名或并行分支跳转标签替换。

5.4.4.10 ‘Insert’ 'Add Entry-Action'

使用这个命令可以为步骤加一个入口动作。步骤激活后,入口动作(entry-action)只
执行一次。可通过所选的编程语言实现。
具有入口动作的步骤在左下角用 "E" 来指示。

5.4.4.11 ‘Insert’ 'Add Exit-Action'

使用这个命令可以为步骤加一个出口动作。退出步骤前,出口动作(exit-action)只执
行一次。可通过所选的编程语言实现。
具有出口动作的步骤在右下角用 "X" 来指示。

5.4.4.12 ‘Extras’ 'Paste Parallel Branch (right)'

使用这个命令可以粘贴剪贴板上的内容作为标记的块的右侧并行分支。对于这个标记
的块,必须以一个步骤作为开始和结束。同样地,剪贴板上的内容也必须是以一个步骤作
为开始和结束的 SFC 块。

5.4.4.13 ‘Extras’ 'Add label to parallel branch'

为了插入一个有跳转标签的并行分支,需标记并行分支之前的转换并执行命令 'Add
label to parallel branch'。并行分支将得到一个标准名"Parallel" 和一个附加序列号,该序
列号可依照标识符命名规则来编辑。例如:"Parallel" 用 "Par_1_2" 来代替,转换“End”
后面的跳转被指到这个跳转标签。
第5章 编辑器(Editors)

5.4.4.14 删除标签

跳转标签可通过删除标签名而进行删除。

5.4.4.15 ‘Extras’ 'Paste after'

使用这个命令可以在第一个步骤或标记的块的第一个转换后粘贴剪贴板中的 SFC
块。(通常在标记的块前复制粘贴。) 依照编程语言规范,如果SFC结构是正确的,就可以
执行此操作。

5.4.4.16 ‘Extras’ 'Zoom Action/Transition'

快捷键: <Alt>+<Enter>
标记的块的第一个步骤的动作或标记的块的第一个转换体被装载到编辑器中(具有各
自的编程语言)。如果动作或转换体是空的,则必须选择编程语言。

5.4.4.17 ‘Extras’ "Clear Action/Transition"

使用这个命令可以删除标记的块的第一个步骤动作或标记的块的第一个转换体。
在一个步骤中,如果只执行任一动作、入口动作或出口动作,则使用这个命令删除。
否则,将显示一个对话框,从中选择哪一个动作将被删除。
如果指针指在 IEC 步骤的动作上,则只有这个联系将被删除。如果一个具有联系动
作的 IEC 步骤被选择,则这个联系将被删除。在一个具有多个动作的IEC 步骤中,将显
示一个选择对话框。

5.4.4.18 ‘Extras’ 'Step Attributes'

使用这个命令可以打开一个对话框,编辑标记步骤属性。

编辑步骤属性对话框如下:
第5章 编辑器(Editors)

在步骤属性对话框中有三个不同的输入区域。在 Minimum Time 中,输入这个步骤


应执行的最短时间。在 Maximum Time 中,输入这个步骤应执行的最长时间。注意:
输入数据类型为 TIME,所以你要使用一个 TIME 常量(如:T#3s) 或 TIME 类型的变量。
在 Comment 区域里,为步骤插入注释。使用 'Extras' 'Options' 命令,打开 'Sequential
function chart options' 对话框,为SFC编辑器中的步骤选择是显示注释还是显示时间设置。
在邻近步骤的右侧显示注释或时间设置。
表示这个数是3秒的
如果超过最长执行时间,SFC 标记被置位,用于用户查询。 Time

上例显示出一个步骤的执行最短持续2秒,最长10秒。在线模式下,除了这两个时间
外,还显示步骤已被激活多长时间。

5.4.4.19 ‘Extras’ 'Time Overview'

使用这个命令可以打开编辑 SFC 步骤的时间设定窗口:

在时间限定表里,显示 SFC POU 中的所有步骤。如果你已经为一个步骤输入了时间


限定,则其显示在步骤的右侧(首先是下限,然后是上限)。你也可以编辑这个时间限定。
方法是:在表中点击一个步骤,步骤名显示在下面的窗口中。在 Minimum Time 或
Maximum Time 区域输入需要的时间限定,按 OK 键关闭窗口,保存所有更改。
例子中,Shift1 和 Shift2都有时间限定。Shift1 最短持续2秒,最长10秒。Shift2 最短
持续7秒,最长8秒。
第5章 编辑器(Editors)

5.4.4.20 ‘Extras’ 'Options'

使用这个命令打开一个对话框,为 SFC POU 设定不同的选项。


SFC 选项对话框如下:

SFC 选项对话框中有五个选项。在步骤高度(Height of Steps)区域为 SFC 编辑器


中的 SFC 步骤设置允许行数,4为标准设定。在步骤宽度(Width of Steps)区域为步骤
设置允许列数,6为标准设定。你也可以预置步骤显示(Display at Step),其有三种选择:
Nothing、Comment、或 Time Limits 。最后两项按照在 'Extras' 'Step Attributes' 中的输
入显示。

5.4.4.21 ‘Extras’ 'Associate Action'

使用这个命令可以将动作和布尔变量同IEC步骤联合起来。
在 IEC 步骤的右侧,附加一个单元框(box)用于联合一个动作。其被预置一个限定
符 "N" 和名字 "Action" 。这两个预置都可以更改。在此可以使用输入帮助。
在 SFC POU 中,使用 'Project' 'Add Action' 命令可以在对象管理器中创建一个新动作。

5.4.4.22 ‘Extras’ 'Use IEC-Steps'

图标:
如果该命令被启动( 在菜单项前显示一个“√”并且在工具栏显示为印迹图标),则IEC
步骤将被插入以替代简单步骤。
如果这个选项为 ON,当创建新的 SFC POU 时,Init 步骤作为一个 IEC 步骤被设置。
该设置存储在文件 "PROSYD 1131.ini" 中,当 PROSYD 1131 再次启动时恢复此设置。

5.4.4.23 在线模式下的 SFC

在线模式下使用 SFC 编辑器,被激活的步骤通常显示为蓝色。如果在 'Extras'


'Options' 中已设置时间管理,则其显示在步骤的旁边。在所设定的上下时间限定显示的
第5章 编辑器(Editors)
下面,显示第三个时间指示,其用于显示步骤已运行多长时间。

在上图中步骤已经运行8.41秒。然而,在步骤退出之前至少要运行7分钟。
使用 'Online' 'Toggle Breakpoint' 命令可以在步骤或动作中设置断点。 程序执行
到该步骤或动作之前将停止。设置有断点的步骤或程序显示为亮蓝色。
如果在并行分支中几个步骤都是有效的,则其动作将被处理的有效步骤显示为红色。
如果已使用 IEC 步骤,则在线模式下的所有运行动作都显示为蓝色。

使用命令 'Online' 'Step over' ,执行下一个步骤。如果位于:


• POU线性处理的步骤或 POU 最右边的并行分支步骤,执行从 SFC POU 返回到调
用程序。如果这个 POU 是主程序,则开始下一个循环周期。
• 并行分支上的步骤(除了最右边的步骤),执行跳转到下一个并行分支上的激活步骤。
• 在 PROSYD 1131 动作中的最后一个断点位置,执行跳转到 SFC 调用程序。
• 在 IEC 动作中的最后一个断点位置,执行跳转到 SFC 的调用程序。
• 在输入动作或输出动作中的最后的断点位置,执行跳转到下一个激活步骤。

使用 'Online' 'Step in'能够进入命令动作。如果跳入到输入、输出或 IEC 动作中,


那么必须在那里设置断点。在动作内部,相应编辑器的所有调试功能对用户都是有效的。
在声明编辑器中,如果将鼠标暂时指在一个变量上,那么这个变量的类型、地址和注
释都将在提示框中显示。
带有激活步骤(Shift1)和断点(Step10)的 SFC实例如下:
第5章 编辑器(Editors)

提示:请参考下列一个序列中元素的处理顺序。

1、首先,IEC 动作中所有在这个序列所使用的动作控制块标记都被复位。(然而,不是在
动作中所调用的IEC动作标记)。
2、所有步骤按照它们呈现在序列中的顺序(从上到下,从左到右)进行测试,以确定是否
提供输出动作的执行需求,如果符合就执行。
3、所有步骤按照它们呈现在序列中的顺序进行测试,以确定是否提供输入动作的执行需
求,如果符合就执行。
4、对于所有步骤来说,按照其呈现在序列中的顺序执行
• 如果可用,占用时间被拷贝到相应的步骤变量中。
• 如果可用,根据需要提供被检测到的超时及 SFC 错误标记。
• 对于非 IEC 步骤,执行相应的动作。
第5章 编辑器(Editors)
5、序列表中所使用的 IEC 动作按照字母顺序执行。有两种执行方式:第一个方式,在当
前循环周期中所有无效的 IEC 动作被执行。第二个方式,在当前循环周期中所有有效的
IEC 动作被执行。
6、转换评测:在当前循环周期中,如果步骤被激活且其后的转换返回TRUE(并且如果已
超出最小激活时间),则下面的步骤被激活。

注意以下动作的执行:
由于是多个顺列的组合,一个动作在一个周期中可以多次执行。(例如:一个 SFC 可
以有两个 IEC 动作 A 和 B,都在 SFC 中执行,都调用 IEC 动作 C;于是在同一周期
中,IEC 动作 A 和 B 都被激活,此外,在两个动作中的 IEC 动作 C 也被激活;而且 C
被调用两次)。
如果在 SFC 的不同地方同时使用同一个 IEC 动作,按照上述所描述的处理顺序,会
产生不可预料的结果。因此会发布一条错误信息。在使用旧版本的 PROSYD 1131 创建
项目的过程中会出现这种情况。

提示:转换中的监控表达式(例如:A AND B)只显示总值。

5.4.5 CFC 编程器


当使用CFC编程时,产生类似一个块的程序:

CFC 编程器不使用栅格,因此元素可以放在任何地方。顺序处理表中的元素包括块、
第5章 编辑器(Editors)
输入、输出、跳转、标签、返回和注释。这些元素的输入和输出可以通过鼠标拖曳一个线
路连接起来。连接线被自动画出来。考虑到已存在的连接,画一条最短连接线是可能的。
当元素移动时连接线会自动调整。如果因为缺少空间不能画连接线,则输入和相连的输出
之间将由红线代替。一旦有空间,这条线将被替换为连接线。
与 FBD 相比,CFC 的优势是反馈通道可以直接插入。
主要命令可以在上下文菜单中找到。

5.4.5.1 CFC 中的指针位置

每个文本都可能是一个指针位置。所选文本显示为蓝色并可以修改。
所有其它情况下的指针位置以带点的矩形框显示。以下举例列出所有可能的指针位置:
1. 元素主体:块、输入、输出、跳转、标签、返回和注释。

2. 块、输入、输出、跳转、标签、返回和注释元素的文本区域以及连接标记的文本区域

3. 块、输入、输出、跳转和返回元素的输入端:

4. 块和输入元素的输出端:
第5章 编辑器(Editors)

5.4.5.2 CFC 中 'Insert' 'Box'

图标: 快捷键:<Ctrl>+<B>
这个命令用于插入运算符、功能、功能块和程序。首先,总是先插入一个 "AND" 运
算符。选择该运算符后,通过修改文本将其改为其它运算符、功能、功能块和程序。也可
从输入帮助的列表中选择所需的块。

5.4.5.3 CFC 中 'Insert' 'Input'

图标: 快捷键:<Ctrl> + <E>


这个命令用于插入一个输入。所出现的文本 "???" 可用一个变量或常量来代替。在此
也可以使用输入帮助。

5.4.5.4 CFC 中 'Insert' 'Output'

图标: 快捷键:<Ctrl>+<A>
这个命令用于插入一个输出。所出现的文本 "???" 可用一个变量来代替。在此也可以
使用输入帮助。输出值赋值给这个变量。

5.4.5.5 CFC 中 'Insert' 'Jump'

图标: 快捷键:<Ctrl>+<J>
这个命令用于插入一个跳转。出现的文本 "???" 可用插入程序将要跳转到的跳转标
签。使用命令 'Insert 'Label' 插入跳转标签。

5.4.5.6 CFC 中 'Insert' 'Label'

图标: 快捷键:<Ctrl>+<L>
这个命令用于插入一个标签。出现的文本 "???" 可用跳转标签来代替。在线模式下,
在 POU 的末尾自动插入返回标签(RETURN)。
使用命令 'Insert 'Jump' 插入一个跳转。
第5章 编辑器(Editors)

5.4.5.7 CFC 中 'Insert' 'Return'

图标: 快捷键:<Ctrl> + <R>


这个命令用于插入一个返回命令。注意:在线模式下,带有 RETURN 名字的跳转标
签是自动插入到编辑器中最后一个元素之后的第一列上的;在顺序步进执行中,它会立即
跳转到在执行之前所离开的POU。

5.4.5.8 CFC 中 'Insert' 'Comment'

图标: 快捷键:<Ctrl> + <K>


这个命令用于插入一个注释。
在注释中使用 <Ctrl> + <Enter> 可得到新的一行。

5.4.5.9 CFC 中 'Insert' 'Input of box'

快捷键:<Ctrl> + <U>
这个命令用于在一个块中插入一个输入。对于许多运算符来说,输入数量是不定的(例
如:ADD 可以有两个或更多个输入)。
选中该块,逐个增加运算符输入的数量。

5.4.5.10 CFC 中 'Insert' 'In-Pin' , 'Insert' 'Out-Pin'

图标:
当编辑一个宏命令时,这些命令有效。所插入的输入或输出管脚作为这个宏命令的输
入和输出。在显示方式上与标准 POU 的输入和输出不同,它们没有位置索引。

5.4.5.11 CFC 中 'Extras' 'Negate'

图标: 快捷键:<Ctrl> + <N>


这个命令用于输入、输出、跳转或返回命令的取反。取反符号为连接处的一个小圆圈。
当使用它时,块的输入、输出、跳转或返回是取反的。
选择它,块的输出或输入是取反的(指针位置4)。再次选择它,取反被删除。

5.4.5.12 CFC 中 'Extras' 'Set/Reset'

图标: 快捷键:<Ctrl> + <T>


第5章 编辑器(Editors)
这个命令只能用于为输出元素所选择的输入。

置位符号为 S ,复位符号为 R。
如果 VarIn1 为 TRUE, VarOut1 为 TRUE。即使 VarIn1 返回为 FALSE,VarOut1
仍保持这个值。
如果 VarIn2 为 TRUE, VarOut2 为 FALSE。即使 VarIn2 返回为 FALSE,VarOut2
仍保持这个值。
多次使用这个命令会使得输出在置位、复位和正常条件间转换。

5.4.5.13 CFC 中 'Extras' 'EN/ENO'

图标: 快捷键:<Ctrl> + <0>


该命令用于为所选块(指针位置3) 增加一个布尔使能输入端EN (Enable In) 和一个布
尔输出端 ENO (Enable Out)。

在这个例子中,只有当布尔变量 "Bedingung" 为 TRUE 时,ADD 才执行。ADD 执


行后,VarOut 也置为 TRUE。当变量 "Bedingung" 为 FALSE ,ADD 不执行,且 VarOut
保持值为 FALSE。下面的例子将显示值 ENO 如何被更多的块所使用:
第5章 编辑器(Editors)

x 的初始值为1,y 的初始值为0。块的右上角的数字表示命令执行的顺序。
x 每次累加一个1,直到达到10为止。此时,块 LT(0) 的输出值为 FALSE,SUB(3) 和
ADD(5) 将被执行。x 重新设置为 1 且 y 每次增加1。当 x 小于10 时,LT(0) 再次被
执行。因而 y 计算 x 的值从1到10的次数。

5.4.5.14 CFC 中 'Extras' 'Properties...'

在 CFC 编辑器中,功能和功能块的常量输入参数(VAR_INPUT CONSTANT) 不直接


显示。当选择块主体时,这些参数将被显示并且它们值可以更改,然后选择命令 'Extras'
'Properties' 或双击主体,"Edit parameters" 对话框就打开了:属性对话框显示如下:

在此可以更改常量输入参数(VAR_INPUT CONSTANT)的值。必须在值的域中标出参
数值。另外用鼠标点击或按空格键对其进行编辑。按 <Enter> 键确认更改的值,按
<Escape> 退出更改。按 OK 按钮存储所有更改。

5.4.5.15 选择 CFC 元素

通过点击元素主体来选择它。
若需选择更多的元素,按住 <Shift> 键并一个一个点击所需元素,或按住鼠标左键拖
曳鼠标通过所有需要的元素。
命令 'Extras' 'Select all' 用于选择所有元素。

5.4.5.16 移动 CFC 元素

在按 <Shift> 键的同时,用方向键可以移动一个或多个选择元素。另一种方法是按鼠
标左键来移动,将这些元素移到要求的位置并松开鼠标左键。所选位置不能覆盖其他元素
或超出编辑器范围。如果这种情况发生,所选元素会跳回初始位置并发出报警声音。

5.4.5.17 复制 CFC 元素

使用命令 'Edit' 'Copy' 可对一个或多个元素进行复制,使用命令 'Edit' 'Paste' 进行粘贴。


第5章 编辑器(Editors)

5.4.5.18 创建连接

一个元素的输入可以连接到另一个元素的输出。一个元素的输出可以连接到许多其它
元素的输入。

元素 E2 的输入端与元素 E1 的输出端之间有许多种连接形式。

将鼠标光标停放在元素 E1 的输出端,按住鼠标左键并将鼠标光标拖至元素 E2 的输
入端,然后松开鼠标左键。在使用鼠标进行拖曳的过程中,从元素E1的输出端到鼠标指针
之间的连接已经建成。
将鼠标光标停放在元素 E2 的输入端,按住鼠标左键并将鼠标光标拖至元素 E1 的输
出端,然后松开鼠标左键。
用鼠标左键移动元素 E1 或 E2,使得元素 E2 的输出端与元素 E1 的输入端接触。
无论具有空输入端的元素 E2 在哪里,都可以拖住鼠标将 E1 的输出端指向 E2 主
体,松开鼠标键后,便可与 E2 最上面的输入端连接起来。如果块 E2 没有空输入端,则
自动产生新的输入端。
使用这种方式,同一个块的输入和输出能连接在一起。为了在两个管脚间建立连接,
需要在一个管脚处按住鼠标左键并拖曳到希望连接的另一个管脚处,松开按键。如果在连
接过程中,鼠标拖至编辑器工作区以外,则会自动出现滚动条。对于简单的数据类型来说,
类型测试在连接过程中完成。如果两个管脚的类型不一致,则指针变为禁止。对于复杂的
数据类型,不进行测试。

5.4.5.19 删除连接

删除元素 E1 的输出端与元素 E2 的输入端之间的连接有许多种方法:


选择元素 E1 的输出端,然后按 <Delete> 键,或执行 'Edit' 'Delete' 命令。如果 E1
的输出端连接到多个输入端,则其它连接也将同时被删除。
选择元素 E2 的输入端,然后按 <Delete> 键,或执行 'Edit' 'Delete' 命令。
用鼠标选择 E2 的输入端,按住鼠标左键将连接从输入端拖至远离 E2 的空闲地方。
当松开鼠标左键时,该连接被删除。

5.4.5.20 改变连接

元素 E1 的输出端与元素 E2 的输入端之间的连接很容易更改为元素 E1 的输出端


与元素 E3 的输入端之间的连接。用鼠标点击 E2 的输入端,按住左键并将鼠标光标移至
E3 的输入端,松开鼠标左键。

5.4.5.21 ‘Extras’ 'Connection marker'


第5章 编辑器(Editors)
连接也可以用连接器(连接标记) 来表示,从而代替连接线。此时输出端与相应的输入
端上分别有一个连接器并具有唯一的名字。
两个元素间已存在的连接将用连接器表示,选择连接线的输出端,执行命令 'Extras'
'Connection marker'。下图显示这个菜单命令执行前后的连接情况。

程序给出一个标准的以 M 开头的唯一的名字,这个名字可以更改。连接器的名字作
为一个输出参数来存储,但在输入端和输出端都可以编辑。
了解连接器名字与连接输出属性联合,并且一起被存储是很重要的。

1. 在输出端编辑连接器:
如果连接器的名字被更改,则所有相关的输入端都采用新的连接器名。但是,不允许
使用已属于另一个连接标记的名字,因为这样将违反连接器名的唯一性。

2. 在输入端编辑连接器:
如果连接器的名字被更改,则其它POU 上的相关连接标记也被更改。用连接器表示的连接也可以
改为通用连接,方法是:选择输出端连接器,执行命令 'Extras' 'Connection marker'。

5.4.5.22 插入 inputs/outputs "on the fly"

如果正确地选择元素的输入端或输出端,则可以直接插入相应的输入元素或输出元素,
且通过键盘在其编辑区域键入字符串。

5.4.5.23 执行顺序

每个元素(块、输出、跳转、返回和标签)都有指示其执行顺序的号码。按照连续的
顺序,在运行时间内执行单独的元素。
当粘贴一个元素时,号码会按照拓扑顺序(从左到右,从上到下)自动给出。如果顺序
已经被改变,所有更高的号码增加1,则新元素接收拓扑后的序号。
当元素移动时,元素序号保持不变。
在某些情况下,必须改变执行顺序以保证执行结果。
如果显示执行顺序,那么在元素的右上角显示相应的顺序执行号码。

5.4.5.24 ‘Extras’ 'Order' 'Display'


第5章 编辑器(Editors)
这个命令转换执行顺序显示开关 ON/OFF。默认设置是显示 ( 通过在菜单命令前显示
“√”来识别)。
相应的执行顺序号码显示在块、输出、跳转、返回和标签元素的右上角。

5.4.5.25 ‘Extras’ 'Order' 'Order topologically'

当执行顺序为从左到右从上到下时,元素按拓扑顺序排列。即对于拓扑排列方式的元
素,号码按照从左到右从上到下的顺序递增。与连接无关,重要的是元素的位置。
当执行 'Extras' 'Order' 'Order topologically' 命令时,被选元素按拓扑排列方式来安
排。所有元素用这种方法从顺序处理表中取出。每个元素按照从右下到左上的顺序输入到
一个单独的保持顺序处理表中。每个带标记的元素均输入到在顺序处理表中的在此元素其
后面执行的元素的前面。下面用一个例子来说明。

选择号码为1、2、3的元素。如果执行命令 'Order topologically',首先从顺序处理表


中取出元素,然后再接连地插入Var3, 跳转和 AND 运算符。Var3 放在标签的前面并接收
号码2。然后跳转被排列并首先接收号码4,但在 AND 插入之后,号码变为5。新的执行
顺序变为:

当生成一个新块时,在顺序处理表中,它将被放置在拓扑后续块的前面。
第5章 编辑器(Editors)

5.4.5.26 ‘Extras’ 'Order' 'One forwards'

使用这个命令可以将所有选中的元素(顺序处理表中的第一个元素除外)在顺序处理表
中的位置向前移动一个位置。

5.4.5.27 ‘Extras’ 'Order' 'One backwards'

使用这个命令可以将所有选中的元素(顺序处理表中最后一个元素除外)在顺序处理表
中的位置向后移动一个位置。

5.4.5.28 ‘Extras’ 'Order' 'To the beginning'

使用这个命令可以将所有选中的元素移至顺序处理表的最前面,而所选元素组内的顺
序保持不变。未选中的元素组内的顺序也保持不变。

5.4.5.29 ‘Extras’ 'Order' 'To the end'

使用这个命令可以将所有选中的元素移至顺序处理表的最后面,而所选元素组内的顺
序保持不变。未选中的元素组内的顺序也保持不变。

5.4.5.30 ‘Extras’ 'Order' 'Order everything according to data flow''

这个命令影响所有的元素。执行顺序由元素的数据流决定而不是由它们的位置决定。
下列图表显示按拓扑顺序排列的元素。
第5章 编辑器(Editors)
下面显示执行命令后的排列:

当选用这个命令时,首先元素按拓扑图排列顺序,创建新的顺序处理表。输入为已知
的先计算,目前没数据的元素下一循环周期再执行。 例如在上面的网络中,因为输入(1 和
2)的值是已知的,ADD 块可以立即执行。必须先知道 ADD 的结果才能执行 SUB 块。
反馈路径最后插入。
数据流顺序的优点是,在数据流顺序系统中,与块的输出端相连的输出可以立即执行,
而在拓扑顺序中则不能实现。在有些情况下,与数据流顺序相比,拓扑顺序可以产生另外
一个结果,从上面的例子可以体现这一点。

5.4.5.31 ‘Extras’ 'Create macro''

图标:
使用这个命令,几个同时被选择的 POU 可以组合成一个块,称为一个宏。宏可以复
制/粘贴,每个复制都成为一个单独的宏,其名字可以独立选择。宏没有参考。所有被宏
切断的连接在宏里产生输入或输出管脚。输入连接产生一个输入管脚。默认名In<n> 显示
在管脚旁边。输出连接,显示 Out<n>。在宏创建之前所产生的连接标记,在宏的管脚上
仍保留。
首先,宏的默认名为 "MACRO",其可以在宏的 Name 域中更改。如果编辑宏,则宏
的名字显示在编辑窗口的标题栏中,附加到 POU 的名字上。
例如:
选择:
第5章 编辑器(Editors)

宏:

在编辑器中:

5.4.5.32 ‘Extras’ 'Jump into Macro'

图标:
使用这个命令,或双击宏的主体,打开宏并在相关的 POU 编辑窗口中进行编辑。宏
的名字显示在标题栏中的 POU 名字中。
创建过程中所生成的宏的输入和输出可以像通用 POU 的输入和输出一样来处理。它

们可以移动、删除、添加等等。不同之处仅仅是显示及无位置索引。添加使用按钮 (对

应输入) (对应输出),该功能在菜单条中同样有效。管脚盒为圆角。管脚盒中的文本与
宏中显示的管脚名相匹配。
宏块中管脚的顺序遵循宏元素的执行顺序。低顺序索引号在高的前面,高管脚在低管
脚的前面。
宏的处理顺序是封闭的,换句话说,位于主 POU 中的宏作为一个块来处理,
。因此控
制执行顺序的命令必须在宏内操作。
第5章 编辑器(Editors)

5.4.5.33 ‘Extras’ 'Expand macro'

使用这个命令,所选择的宏被再一次扩展并且其包含的元素被插入到宏所位于的POU
中。对宏管脚的连接再次显示为元素的输入或输出连接。如果宏扩展由于缺乏空间而不能
在宏所在的位置生成,则宏向右下方扩展直到有足够的空间。

提示:
如果项目被存储在版本2.1下,则宏将同样被扩展。所有宏在转换为其它编程语言之
前都被扩展。

5.4.5.34 ‘Extras’ 'Back one macro level', 'Extras' 'Back all macro level'

图标:
这些命令在工具栏中也是有效的,宏打开后就可以编辑。如果一个宏嵌套在另一个宏
中,则转换到下一个更高或最高的显示级别。

5.4.5.35 CFC 中的反馈路径

在 CFC 编辑器中反馈路径可以直接显示,这一点与使用FBD编辑器不同。在此,块
的输出总是带有内在的中间变量。对于运算符来说,中间变量的数据类型由最大输入数据
类型产生。
常量的数据类型从最小可能的数据类型中获得,常量 '1' 采用数据类型 SINT。现在,
如果执行一个具有反馈回路和常量 '1' 的加法运算,则第一个输入的数据类型为 SINT,
第二个输入由于是反馈回路而没有定义。因而中间变量的类型也为 SINT。中间变量的值
分配给输出变量。
下图分别显示带有一个反馈回路的加法运算和带有一个变量的加法运算。变量 x 和 y
的类型为 INT。

两个加法运算间的不同之处:
变量 y 可以赋予一个不等于0的初始值,其不同于左边加法操作中的中间变量。
左边加法操作中的中间变量的类型为 SINT,而右边的数据类型为 INT。在第129次调
用后,变量 x 和 y 的值不同。变量 x 的类型虽然为 INT,但因中间变量已经溢出,所
以其包含数据-127;此时变量 y 包含数值129。

5.4.5.36 在线模式下的 CFC

监控(Monitoring):
第5章 编辑器(Editors)
在输入或输出盒内显示输入和输出的值。常量不被监视。对于非布尔型变量,显示其
相应的值。对于布尔型变量,如果值为 TRUE,则变量名以及连接均显示为蓝色,相反为
黑色。

在 TRUE 状态下,内部的布尔连接也在线显示为蓝色,相反为黑色。内部非布尔连接
数值显示在连接输出管脚处的一个圆角方盒内。

宏的管脚像输入或输出块一样被监控。

带有连接标记的非布尔型连接在连接标记内显示其值。对于布尔连接,如果值为 TRUE
则连接线以及标记名都显示为蓝色,相反为黑色。

流量控制:
打开流量控制功能后,用在‘Project’‘Options’对话框中选定的颜色标记经过的连接。

断点:
断点可以设置在所有具有处理顺序索引号的元素上。程序处理将在元素执行前暂停,
即对于POU和输出,在输入赋值之前;对于跳转标签,在具有下个索引号元素执行之前。
在断点对话框中,元素的处理顺序索引作为断点位置使用。
在所选元素中设置断点的方法如下:用 F9 键;或在 'Online' 或 'Extras' 菜单中通过
菜单条 'Breakpoint on/off' 来实现;或通过编辑器的上下文菜单来实现。如果一个元素设
置了断点,当再一次执行 'Breakpoint on/off' 命令时就可撤消断点。另外,也可通过在设
置断点的元素上双击进行切换。
断点的显示颜色在‘Project’‘Options’ 对话框中设置。

RETURN 标签:
在线模式下,名为 "RETURN" 的跳转标签会在编辑器中最后一个元素之后的第一列
上自动生成。这个标签标志着在顺序步进执行中,当前POU结束后会立即跳转到在执行之
前所离开的POU。在宏中不能插入 RETURN 标记。

步骤:
当使用 'Step over' 命令时,总是跳至带有下一个高顺序索引号的元素。如果当前元
第7章 库管理器(Library Manager)
素是1个宏或者1个POU,当执行命令'Step in'时执行分支。如果执行 'Step over' 命令,那
么跳至顺序索引在宏后面的元素。

6. 资源概述
在对象管理器的Resources 选项卡中,有用于配置和组织项目的对象及用于跟踪变量值
的对象:
资源选项卡的内容如下:

6.1 全局变量
6.1.1 编辑全局变量
在对象管理器中的 Resources 选项卡下的 Global Variables 文件夹中有三个对象
(对象默认名在圆括号内)。
在这些对象中定义的所有变量可在整个项目中被识别。
如果 global variables 文件夹没打开(在文件夹前显示加号) ,双击或选定该行后按
<Enter>键打开。
选择相应的对象。用 'Object Open' 命令可以打开具有先前已定义全局变量窗口。这个
编辑器与声明变量编辑器一样。

6.1.2 变量表
全局变量和变量配置(VAR_CONFIG)必须在不同的对象中定义。
如果已声明了大量的全局变量,则最好构造全局变量表。

在对象管理器中,选择 Global Variables 文件夹或一个已具有全局变量的 对象。然


后执行 'Project' 'Object Add' 命令。为显示在对话框中的对象起一个相应的名字。使用这
个名字将创建一个含用关键字 VAR_GLOBAL 的对象。如果你更愿意一个对象一个变量配
置,将关键字更改为 VAR_CONFIG。

6.1.3 全局变量
在整个项目中均需要访问的标准变量、常量或其它变量都可以声明为全局变量。
第7章 库管理器(Library Manager)

6.1.3.1 创建全局变量表

为创建全局变量表,需打开对象管理器中的 'Resources' 选项卡,并选择'Global Variables'


或选择一个已存在的表。然后执行命令 'Project' 'Object' 'Add' 打开全局变量表对话框。
如 果 在 对象管理器中已存在一个全局变量表,那么也可以用命令 'Project' 'Object'
'Properties' 打开这个对话框。下图显示该表的配置。
创建一个新的全局变量表对话框。

如果在目标设置中选项 'Support network variables' 被激活,则按钮 <Add network> 可


用。按这个按钮以扩展对话框,如上图显示。如果该选项没有被激活,则这个按钮不可用。
插入一个 Name of the global variable list。如果你已具有一个包含需要变量的输出文
件(*.exp) 或 DCF 文件,则可以与这个文件建立连接(Link to file)。方法是,在 Filename
区域中写入文件的路径,或按 Browse 按钮打开标准对话框 'Select text file'。当读入时,DCF
文件会转换为 IEC 结构。
如果希望在项目每次编辑之前从外部文件读入变量表,则激活选项 Import before
compile。如果希望在项目每次编辑之前将变量表写入外部文件,则激活选项 Export before
compile。
如果当前没有配置,在一个CAN 网络下,你将获得一个具有标题'Connection 1 (CAN)'
的选项卡。每次'Add network' 按钮再次被按时,你将获得最多4个选项卡,每个选项卡的标
题为在 "Connection"后带有数字.
从 Network type 下拉列表中选择希望的类型。该列表由目标系统定义。例如,"CAN" 作
为 CAN 网络的缩写,或“UDP” 作为UDP传送系统的缩写都可以被选择。
第7章 库管理器(Library Manager)
在变量配置中以下选项可选择是否被激活:
Read: 列表中的变量是可读的;如果选项没被激活,则发送到网络的变量将被忽略。
Write:写变量;以下选项适用:
Transmit each cycle:变量在 Interval (时间符号,例如 T#70ms) 中所指定的时间间隔
内被写。
Transmit on change:只有当变量值改变时变量被写;在 Minimum项设置数据传送的最小
时间间隔。
Pack variables:变量打包后传送,其大小由网络决定。如果选项没被激活,每个变量被认
为是一个包。
Base identifier:含发送变量的数据包有一个识别号码。只要没输入另一个起始号码,在正
常情况下一般以 1 开始,按顺序递增。

6.1.3.2 编辑全局变量表

全局变量编辑器与声明编辑器相似。但应注意,在这个编辑器中不能编辑外部变量表!外
部变量表只能在外部编辑,并且在每次打开和编译项目时被读取。
语法结构:
VAR_GLOBAL
(* 变量声明 *)
END_VAR

6.1.3.3 编辑其它全局变量表

如果有运行系统支持,其它变量(remanent variables)可以被处理。其它全局变量有两
种类型:
保持变量在运行系统(off/on)无控制关闭后或在 PROSYD 1131 中执行 'Online' 'Reset'
后都保持不变。
持久变量在运行系统(stop, start)关闭后或执行 'Online' 'Cold reset' 命令后或下载后都不
变。
持久变量不会自动变为保持变量!
其它变量被加以关键字 RETAIN 或 PERSISTENT。
网络变量也可以用这个语法结构定义。
语法结构:
VAR_GLOBAL RETAIN
(* 变量声明 *)
END_VAR

VAR_GLOBAL PERSISTENT
(*变量声明 *)
END_VAR
第7章 库管理器(Library Manager)

6.1.4 全局常量
全局常量被加以关键字 CONSTANT。
语法结构:

VAR_GLOBAL CONSTANT
(* 变量声明 *)
END_VAR

6.2 变量配置
在功能块中,如果在关键字 VAR 和 END_VAR 之间定义变量,输入和输出的指定地址
可以不完全定义。不完全定义地址可用星号(*)表示。
例如:
FUNCTION_BLOCK locio
VAR
loci AT %I*: BOOL := TRUE;
loco AT %Q*: BOOL;
END_VAR

这里定义了两个局部 I/O 变量,一个局部输入变量(%I*)和一个局部输出变量(%Q*)。


在Resources 选项卡中的对象管理器中,如果需要为变量配置(variables configuration)
配置局部 I/O 变量,则生成对象Variable_Configuration。因而,对象可以被重新命名,
并且其它对象也可以生成。
变量配置编辑器与声明编辑器相似。
局部I/O-配置变量必须放在关键字 VAR_CONFIG 和 END_VAR 之间。
这种变量名包含一个完整的实例,通过实例可将某个POU和实例名与另一个区分开。在功
能块中,声明必须包含对应不完整专用地址(%I*, %Q*)的输入/输出地址。数据类型的声明必
须符合功能块内的声明。
如果配置变量的实例路径因实例不存在而无效,系统将会报错。另一方面,如果一个实例
变量的配置不存在,也会有错误报告。使用 'Insert' 菜单下的 "All Instance Paths" ,可以接
收所有配置变量的列表。
例如,假设程序中为一个功能块已做了如下定义:
PROGRAM PLC_PRG
VAR
Hugo: locio;
Otto: locio;
END_VAR

则用以下方法正确配置变量:
第7章 库管理器(Library Manager)

VAR_CONFIG
PLC_PRG. Hugo.loci AT %IX1.0 : BOOL;
PLC_PRG. Hugo.loco AT %QX0.0 : BOOL;
PLC_PRG. Otto.loci AT %IX1.0 : BOOL;
PLC_PRG.Otto.loco AT %QX0.3 : BOOL;
END_VAR

6.2.1 'Insert' 'All Instance Paths'


在项目中,使用这个命令可产生包含所有实例路径变量的 VAR_CONFIG - END_VAR
块。对于已经被分配地址的变量则不重新插入声明。如果项目被编译('Project' 'Rebuild All'),
在变量配置窗口中可以找到这个菜单条。

6.2.2 结构文档

6.2.2.1 结构文档

如果需要将一个项目分别存储为使用德语注释和使用英语注释的版本,或者如果你想在几
个相似的项目中使用相同的变量名,则使用 'Extras' 'Make Docuframe File' 命令创建一个结
构文档以节省自己的许多工作。
已创建的文件可以装载到希望的文本编辑器中,并进行编辑。文件的第一行以 DOCUFILE
开始。项目变量表遵循一个排列,即每个变量占三行:VAR 行,表示有一个新变量;第二行
为变量名;最后一行为空行。使用变量注释可代替这一行。 对于未说明的变量可以删除。如
果需要的话,可为你的项目生成多个结构文档。
结构文档编辑窗口如下:

运行 'Extras' 'Link Docu File' 命令,就可以使用结构文档。现在,如果需要记录整个项目,


或打印部分项目,则在程序文本中,在结构文本中所产生的注释将被插入。这个注释只在打印
第7章 库管理器(Library Manager)
输出中显示!

6.2.2.2 'Extras' 'Make Docuframe File'

用这个命令创建一个结构文档。只要从全局变量中选择一个对象,就可以使用这个命令。
一个对话框将打开用于存储一个新文件。在文件名区域中,文件名的扩展名(*.txt)已存
在。输入希望的文件名。现在,文本文件创建完成,其中包含项目的所有变量列表。

6.2.2.3 ‘Extras’ 'Link Docu File'

用这个命令可以选择一个结构文档。
打开对话框。选择结构文档并按 OK。现在,如果需要记录整个项目,或打印部分项目,
则在项目文本中,所生成的注释将插入到所有变量的结构文档中。这个注释只出现在打印输出
中!
使用 'Extras' 'Make Docuframe File' 命令创建结构文档,。

6.3 PLC 浏览器


PLC 浏览器是基于文本的控制监视器(终端)。用于在输入行中输入特定的命令,并以字符
串的形式向控制器发送。返回响应字符串显示在浏览器的结果窗口中。该功能适用于诊断和调
试。
命令和功能的有效性依赖于目标系统。

6.4 PLC 配置
在 对 象 管 理 器 的 Resources 选 项 卡 中 可 以 找 到 PLC Configuration 。 使 用 PLC
Configuration编辑器,可以定义当前打开的项目所需硬件的I/O模块。在 PROSYD 1131 中,
Extras \ PLC Selection 命令选择所连接的控制器。
6.4.1 PLC 选择
使用菜单 Extras \ PLC Selection 选择所连接的控制器。
在选择列表中显示所有的控制器选项。在你没有选择控制器之前进行Login连接时,该对
话框会自动显示出来。
按 OK 确认选择,或按 CANCEL 取消选择。

6.5 任务配置
除了声明特殊的 PLC_PRG 程序外,也可以用任务管理来控制项目的处理。

在对象管理器的 Resources 选项卡中可以找到任务配置(Task Configuration )。任


务编辑器包含一系列任务。任务声明由以下部分组成:任务名,任务的优先级入口,任务执行
条件的入口。这个条件可以是一个时间间隔,任务依照该条件执行,或一个BOOL型全局变量,
当它为上升沿时执行任务。
可以为每个任务指定一系列程序,任务开始启动时程序执行。如果在当前循环周期执行任
务,那么这些程序将在这个周期中执行。
任务配置以下列形式显示:
第7章 库管理器(Library Manager)
•第一行为Task Configuration。
• Task Configuration 的下面是任务(其顺序为名字,优先级,时间间隔和事件)。
• 在每个任务的下面有一系列被调用的程序。
Task Configuration 的例子:

在这个例子中,Task2 的优先级低于 Task1。Task1需要每2秒被执行一次。在这个 Task


Configuration 中,Task1配置为每2秒执行一次,在此期间,假若全局变量 "Schalten" 产生
一个上升沿,Task2 在任何时候都执行。

6.5.1 哪个任务被处理?
对于任务的执行,应用以下规则:
• 当条件满足时执行任务;即到达指定时间或条件变量有一个上升沿之后。
• 如果几个任务具有同一个有效条件,那么先执行具有最高优先级的任务。
• 如果几个任务具有同一个有效条件并且优先级相同,那么等待时间最长的任务先被执行。
• 可以在上下文菜单中找到最主要的命令(按右鼠标键或按 <Ctrl>+<F10>)。

6.5.2 使用任务配置
• 任务配置的标题是 "Task Configuration"。如果标题前有一个加号,则顺序表是关闭的。双
击鼠标或按 <Enter>,就可以打开这个表。这时,标题前显示减号。再次双击,关闭这个
表。
• 对于每个任务,都有一个程序列表。可以用同样的方法打开和关闭这个表。
• 使用 'Insert' 'Insert Task' 命令可以插入一个任务。
• 使用 'Insert' 'Insert Program Call' 命令,插入一个程序调用。
• 使用 'Extras' 'Edit Entry' 命令,依据所选元件,可编辑任务特性或程序调用。
• 点击任务或程序名或按 <空格>,在名字的周围出现编辑控制框。在任务编辑器中直接更改
名称。

6.5.3 'Insert' 'Insert Task' 或 'Insert' 'Append Task'


使用这个命令可以在任务配置中插入一个新任务。
选择一个任务,使用 'Insert Task' 命令在指针前面位置插入新任务。如果选择字“Task
Configuration”,则 'Append Task' 命令有效,并将新的任务添加到已存在的列表的最后。
打开对话框,设置任务属性。
第7章 库管理器(Library Manager)

在对话框中可以输入希望的属性:Name;Priority (0~31之间的数字,具有以下特性:0
是最高级,31 是最低级);Interval 之后任务再次启动;或一个变量在上升沿之后使任务执
行(在 Single 域中设定)。用 Select... 按钮,可以打开输入帮助,从中选择已声明的变量。
如果时间间隔和变量都输入了,则只按照时间间隔的要求来执行。如果两个区域都没有输
入设定,则执行间隔依照所用的目标系统 (依据专用运行系统文件;例如,PROSYD 1131SP
NT V2.2 的运行时间的时间间隔为10 ms)。

6.5.4 'Insert' 'Insert Program Call'或'Insert' 'Append Program


Call'
使用这些命令可以打开对话框,在任务配置中输入一个程序调用。
使用 'Insert Program Call' 命令,新程序调用插入到指针位置的前面,使用 'Append
Program Call' 命令,在已存在的列表最后添加程序调用。
程序调用输入对话框如下:

在这个区域中,为项目指定一个有效的程序名,用 Select… 按钮打开输入帮助来选择一


个有效的程序名。如果所选的程序要求输入变量,则按照通常的格式与所声明的类型输入(例
如:prg(invar:=17))。

6.5.5 'Extras' 'Edit Entry'


依照所选元件,使用这个命令可以在任务配置中打开1个对话框来设定任务的属性(参看
'Insert' 'Task'),或打开对话框来输入程序调用(参看 'Insert' 'Program Call')。
如果指针位于任务的输入区域,并且在这一区域没有添加程序调用列表,则双击输入区域
或按 <Enter> 键打开对话框,。
如果指针位于程序调用的输入区域,则可以通过双击程序输入区域打开对话框。
点击任务名或程序名,或按 <空格>,在名字周围会出现一个编辑控制框。然后,在任务
编辑器中可以直接更改名称。
第7章 库管理器(Library Manager)

6.5.6 ‘Extras’ 'Set Debug Task'


使用这个命令,在任务配置中可以在在线模式下调试任务。在设定的任务后面会出现文本
[DEBUG]。
调试性能的应用只限于这个任务。换句话说,如果程序在该设定的任务中运行,则程序只
在断点处停止。

6.6 采样轨迹
采样轨迹的意思是在某一时间范围里跟踪变量值的变化。这些值被写入一个缓冲区(采样
缓冲区)。如果存储器满了,则存储器开头“最老的”值被覆盖。在同一时间,最多可以跟踪20
个变量。每个变量最多可以跟踪500个值。
由于 PLC 中的采样缓冲区容量是固定的,如果采集的变量是多字节的(如:DWORD),则
所存储的采样值少于500个。
例如:如果 PLC 的存储区为5000字节长,有10个WORD类型变量将被采样,则每个变量
能被采集250个值。

为了能够完成采样,在对象管理器的Resources选项卡中打开Sampling Trace 。然
后输入采样变量(参看 'Extras' 'Trace Configuration')。用 'Save Trace' 命令将配置传送给
PLC,并用 'Start Trace' 命令在 PLC 中启动采样。用 'Read Trace' 命令读取最后的采样
值,并以曲线形式显示。

6.6.1 ‘Extras’ 'Trace Configuration'


使用这个命令打开用于输入采样变量的对话框,也就是用于设置采样轨迹的各种参数。双
击“Sampling trace”窗口的灰色区域,打开对话框。
采样轨迹设置对话框显示如下:
第7章 库管理器(Library Manager)

被记录的 Variables 列表最初是空的。为了添加一个变量,必须在表的下面输入变量。


按 Add 或 <Enter> 键,在表中添加变量。也可以使用输入帮助。
为从表中删除一个变量,需要选择要删除的变量并按 Delete 按钮。
可以在Trigger Variable 区域中输入布尔变量或模拟变量。在这里也可以使用输入帮助。
触发变量描述轨迹的终止条件。在 Trigger Level 区域中输入触发事件发生时模拟触发变量
的标准。当选择 Trigger edge positive 时,在布尔触发变量产生一个上升沿之后或模拟变
量的触发标准从低到高时产生触发事件。Negative 引起的触发事件是在布尔触发变量的下降
沿或模拟变量的触发标准从高到低时发生。Both 在两种情况下都可引起触发,而 none 在
两种情况都不能引起触发。Trigger Position 用于设定触发事件发生前将被记录测量值的百
分数。例如,如果输入25,则25%的测量值将在触发事件前被显示,然后75%,最后停止采
样。Sample Rate 区域用于设定两次记录间的时间周期,以毫秒计。默认值为 "0",意思是
每个循环周期扫描一次程序。
选择记录值的调用方式:选择 Single,在 Number of samples 中定义的采样数量只
显示一次。选择 Continuous,已定义采样数量的记录值的读取每次都被重新启动。例如,
如果输入数码 '35',则首先显示标准值1~35,然后自动读取后面的35个标准记录值36~70,
等等。选择 Manual,用 'Extras' 'Read trace'命令来读取采样记录值。
记录调用方式与触发变量是否被设置无关。如果未设置触发变量,则轨迹缓冲区将按照测
量值所定义的数量填充,调用纪录时缓冲区中的记录内容将被读出并显示。
按钮 Save 用于存储轨迹配置。标准窗口 "File save as"将被打开。
使用按钮 Load 可以重新打开所存储的轨迹配置。标准窗口 "File open"将被打开。

提示:请注意配置对话框中的 Save 和 Load 只用于配置信息,不用于记录值(与菜


单命令 'Extras' 'Save trace' 和 'Extras' 'Load trace' 不同)。

如果触发变量区域是空的,则跟踪记录将不断地运行,直到执行 'Extras' 'Stop Trace' 停


止。

6.6.2 ‘Extra’ 'Start Trace'

图标:
使用这个命令,轨迹配置被传送到 PLC,并在 PLC 中开始采样轨迹。

6.6.3 'Extra' 'Read Trace'

图标:
使用这个命令,读 PLC 中的当前轨迹缓冲区,并显示所选变量的值。

6.6.4 'Extra' 'Auto Read'


使用这个命令,从 PLC 中自动读取当前轨迹缓冲区并连续显示数值。
如果轨迹缓冲区被自动读取,则在该命令前显示标记(√)。
第7章 库管理器(Library Manager)

6.6.5 'Extra' 'Stop Trace'

图标:
这个命令用于停止 PLC 中的轨迹采样。

6.6.6 显示变量的选择
位于组合框的右侧,在用于显示轨迹配置中所定义的采样变量曲线窗口的旁边。如果从列
表中选择了一个变量,则该变量以相应的颜色来显示 (变量0为绿色,等等)。显示的曲线为所
选变量的。
在轨迹窗口中最多可同时监视8个变量。

6.6.7 采样轨迹的显示
如果装载一个轨迹缓冲区,则所有变量的值将被读出并显示。如果没有设置扫描频率,那
么 X 轴将用轨迹值的连续数据来表示。从轨迹窗口(第一行)的状态显示可以看出其是否装满
以及跟踪的完成时间。
如果指定了扫描频率,则 X 轴将指定轨迹值的时间。时间被赋给“最旧的” (“oldest” )
轨迹值。例如:显示持续 25 秒钟的数值。
Y 轴根据适当的数据类型显示数值。根据所显示区域允许的最低和最高值来缩放。例如,
变量 0 的最低值为6,最高值为100,其的刻度设置在左边。
如果设定了触发条件,则在出现触发条件的前后采样数值之间显示垂直点线。
所读取的存储器将被保存直至项目改变或离开系统为止。

6.6.8 'Extras' 'Cursor Mode'


在监控区域设置游标的最简单方法就是在那儿点击鼠标左键。游标出现并可用鼠标移动。
在监控窗口的顶部显示当前游标的 x-位置。在 'Var 0','Var 1', ..., 'Var n' 变量的旁边显示各自
的值。
另一个方法是使用命令 'Extras' 'Cursor mode'。在采样轨迹处出现两条垂直线,最初这两
第7章 库管理器(Library Manager)
条线是重叠在一起的,其中一条线可以用方向键进行左右移动。按 <Ctrl>+<left> 或
<Ctrl>+<right> 可使移动的速度增加10倍。
如果按 <Shift> 键,第二条线也可移动,并显示与第一条线所在数值的差值。

6.6.9 'Extras' 'Multi Channel'


使用这个命令可交替显示单通道或多通道采样轨迹。如果显示多通道,则在菜单条前标记
(√)。
若设置多通道显示,则显示窗口被分为八个部分,以显示八条曲线。在左侧显示每条曲线
的最大和最小值。
若设置单通道显示,则所有曲线用同一比例显示且重叠。该设置可用于曲线异常性分析。

6.6.10 ‘Extras’ 'Show grid'


使用这个命令可以在图形窗口中切换栅格。当设置栅格时,在菜单条的旁边显示(√)标记。

6.6.11 ‘Extras’ 'Y Scaling'


使用这个命令,在轨迹显示中可以更改曲线的 Y 轴定标。
在对话框中指定曲线(Channel)的数量,新的Y轴最大值(maximum y scale)和新的Y轴
最小值(minimum y scale)。
双击曲线,可得到如下对话框。

6.6.12 ‘Extras’ 'Stretch'

图标:
用这个命令可以伸展所显示的采样轨迹值。通过水平图形调节栏设置启始位置,连续执行
该命令,在窗口中所显示的轨迹段的长度缩短。
这个命令与 'Extras' 'Compress' 相似。

6.6.13 ‘Extras’ 'Compress'

图标:
使用这个命令,所显示的采样轨迹值将被压缩;也就是说,用了这个命令后,可以在一个
更大的时间范围内显示轨迹变量的值。可以多次执行这个命令。
这个命令与 'Extras' 'Stretch' 相似。
第7章 库管理器(Library Manager)

6.6.14 ‘Extras’ 'Save Trace'


使用这个命令可以存储采样轨迹(包括值和配置数据)。存储文件对话框被打开,文件的扩
展名为 "*.trc"。
在此,轨迹值与轨迹配置一样存储,而配置对话框中的 Save trace 只存储配置数据。
已存储的采样轨迹可以用 'Extras' 'Load Trace' 来装载。

6.6.15 'Extras' 'Load Trace'


使用这个命令可以装载已存储的采样轨迹(包括轨迹值和配置数据)。打开文件对话框被打
开。选择扩展名为 "*.trc" 的文件。
使用 'Extras' 'Save Trace' 命令可存储采样轨迹。

6.6.16 ‘Extras’ 'Trace in ASCII-file'


使用这个命令可以在 ASCII 文件中存储采样轨迹。存储文件对话框被打开。文件的扩展
名为 "*.txt"。在文件中数值按照以下方式存放:
PROSYD 1131 Trace
D:\PROSYD 1131\PROJECTS\TRAFFICSIGNAL.PRO
Cycle PLC_PRG.COUNTER PLC_PRG.LIGHT1
021
121
221
.....
如果在轨迹配置中没有设定扫描频率,则循环周期被装载到第1列,也就是说,在任何时
候每个周期中都有一个数值被记录。设定扫描频率,这里的输入是毫秒级的时间值,当采样轨
迹运行后,变量值在此时被存储。
在后面的列中存储相应的轨迹变量值,值与值之间用空格分开。
在第2列与第3列,按照顺序(PLC_PRG.COUNTER, PLC_PRG.LIGHT1)显示变量数值。

6.7 监视及配方管理器(Watch and Receipt Manager)


6.7.1 监视及配方管理器
在监视及配方管理器的帮助下,可以查看所选变量的值,也可以为变量预置值并作为一个
组传送到PLC中('Write Receipt')。同样地,当前PLC的值可被读入并储存在监视及配方管理器
中('Read Receipt')。这些功能都是有用的,例如,用于控制参数的设定及输入。
在监视及配方管理器的左列显示所创建的所有监视表(使用'Insert' 'New Watch List'创
建)。用鼠标或方向键选择这些表。在监视及配方管理器的右边区域显示在任何时候所使用的
变量值。
为使用监视及配方管理器,在对象管理器的 Resources 选项卡中打开 Watch and
Receipt Manager。
第7章 库管理器(Library Manager)

6.7.2 离线模式下的监视及配方管理器
离线模式下,在监视及配方管理器中可用 'Insert' 'New Watch List' 命令创建多个监视表。
对于输入变量的监视,可以使用输入帮助调用所有变量的列表,或按照以下的形式用键盘
输入变量:
<POUName>.<Variable Name>
对于全局变量,其POU名被省去,以一个点开始。变量名可包含多层。地址可以直接输入。
多层变量的例子如下:
PLC_PRG.Instance1.Instance2.Structure.Componentname

全局变量的例子如下:
.global1.component1

离线模式下的监视及配方管理器如下:

监视列表中的变量可以预置常数值,这意味着在线模式下可以用 'Extras' 'Write Receipt'


命令将这些值写入变量。使用“:= ”给变量赋值:
例如:
PLC_PRG.TIMER:=6

在例子中,变量 PLC_PRG.COUNTER 被赋值为6。

6.7.3 'Insert' 'New Watch List'


使用这个命令可以将新监控表插入到监视及配方管理器中。在显示对话框中输入表的名
字。

6.7.4 'Extras' 'Rename Watch List'


使用这个命令可以更改监视及配方管理器中监视表的名字。在显示对话框中输入监视表的
新名字。

6.7.5 'Extras' 'Save Watch List'


使用这个命令可以存储一个监视表。存储文件对话框被打开。文件名被预置为监视表的名
第7章 库管理器(Library Manager)
字,扩展名为 "*.wtc"。
使用 'Extras' 'Load Watch List' 命令可以重新装载监视表。

6.7.6 'Extras' 'Load Watch List'


使用这个命令可以重新装载所存储的监视表。打开文件对话框被打开。选择扩展名为
"*.wtc" 的文件。在显示对话框中,可以给监视表一个新名字。文件名没有扩展名。
使用 'Extras' 'Save Watch List' 命令可以存储监视表。

6.7.7 在线模式下的监视及配方管理器
在线模式下显示被输入的变量的值。
结构值 (数组、结构、功能块实例) 的标识符前面标记有一个加号。用鼠标点击加号或按
<Enter> 键,可以打开或关闭变量。如果在监视表中标记一个功能块的变量,其关联的上下
文菜单被扩展并包含两个菜单条 'Zoom' 和 'Open instance'。
为了输入新变量,可以用 'Extras' 'Monitoring Active ' 命令关闭显示。变量输入完成后,
再使用同样的命令激活数值显示。
在线模式下的监视及配方管理器如下:

离线模式下可以为变量预置常数值。在线模式下,使用 'Extras' 'Write Receipt' 命令可将


这些数值写入变量。
使用 'Extras' 'Read Receipt' 命令,可以用变量的当前值替换变量的预置值。

提示:只有在监视及配方管理器中被选择的数值在监视表中被装载!

6.7.8 'Extra' 'Monitoring Active'


在线模式下,在监视及配方管理器中,使用这个命令可以打开或关闭显示。如果显示被激
活,则在该命令前会出现(√)标记。
为了输入新变量或预置一个数值(参看离线模式),必须使用这个命令来关闭显示。当变量
输入完毕后,使用同样的命令再次激活数值显示。
第7章 库管理器(Library Manager)

6.7.9 'Extras' 'Write Receipt'


在监视及配方管理器的在线模式下使用这个命令,可以为变量设置预置值。

提示: 只有在监视及配方管理器中被选择的数值在监视表中被装载!

6.7.10 ‘Extras’ 'Read Receipt'


在监视及配方管理器的在线模式下使用这个命令,可以将变量的预置值替换为变量的当前
值。
例如:
PLC_PRG.Counter [:= <present value>] = <present value>

提示: 只有在监视及配方管理器中被选择的数值在监视表中被装载!

6.7.11 强制数值
在监视及配方管理器中,也可以使用命令 'Force values' 强制数值或命令 'Write
values'写入数值。点击某个变量值,打开一个对话框,为变量输入一个新值。在监视及配方
管理器中,被改变的变量显示为红色。

7 库管理器(Library Manager)

库管理器显示所有与当前项目相连接的库文件。库文件中的POU、数据类型和全局变
量的使用方法与用户自定义的 POU、数据类型和全局变量一样。
使用 'Window' 'Library Manager' 命令打开库管理器。 所加载的相关库文件信息
与项目一起存储。
库管理器显示如下:
第8章 可视化组件

7.1 使用库管理器
库管理器窗口被屏幕分割器分为三个或四个区域。加载到项目上的库文件被列在左上
区域。
在下面的区域中,依照所选择的选项卡,显示上面区域中所选库的 POU , Data types,
Visualizations 或 Global variables 列表。
双击鼠标或按 <Enter> 键,可以打开或关闭文件夹。在关闭的文件夹前显示有一个
加号,在打开的文件夹前显示有一个减号。
如果用鼠标或用箭头键选择一个 POU,则这个 POU 的声明将显示在库管理器的右上
区域;右下区域是带有输入及输出的图形显示。
对于数据类型和全局变量,声明显示在库管理器的右侧区域。

7.2 标准库(Standard Library)


库文件 "standard.lib" 总是被加载的。其包含IEC编程系统中所有的IEC61131-3标准
功能和功能块。标准功能和运算符之间的不同之处为:标准POU (standard.lib) 必须被加
载到项目中时,而运算符是被程序设计系统隐性识别的。
这些 POU 的代码以 C-library 的形式存在,并且是 PROSYD 1131 的一个部件。

7.3 用户自定义库
如果一个项目在它的实体中被编译且无错误产生,则在 'File' 菜单中可以用 'Save
as' 命令将其存储为库文件中。项目本身将保持不变。产生一个附加文件,默认扩展名为
".lib"。然后,这个库可以像标准库一样使用。
为了在其它项目中使用这个项目的 POU,将这个项目作为一个Internal*.lib 来存
储。 其后,利用库管理器可以将这个库加载到其它项目中。
如果在其它编程语言(例如 C )中执行 POU,并希望一个库文件中取得该POU,则使
用数据类型External Library*.lib 存储这个项目。你将得到一个库文件,但附加了一个
扩展名为 "*.h"的文件。这个文件的构成像一个 C 头文件,并包含所有有效的 POU、数
据类型和全局变量的声明。如果在一个项目中使用了外部库,则在仿真模式下,用
第8章 可视化组件
PROSYD 1131 编写的 POU 将被执行;但在目标系统(硬件系统)上用 C 编写的程序
将被执行。

7.4 'Insert' 'Additional Library'


使用这个命令可以给项目附加一个库。
当执行这个命令时,显示打开文件对话框。选择带有 "*.lib" 扩展名的库文件,并按 OK
键关闭对话框。该库被列在库管理器中,且库中的对象可作为用户自定义的对象使用。

7.5 删除库(Remove Library)


使用 'Edit' 'Delete' 命令可以从一个项目中和库管理器中移除一个库。

8 可视化组件

8.1 可视化组件
可视化组件允许对项目中的变量进行观测。借助于可视化组件的帮助,可以离线绘制
图形单元,其形状、颜色可以根据指定的变量数值在线更改。例如:使用棒状图显示变量
数值的增减。
在线模式下,也可通过鼠标和键盘对程序进行输入。
在配置可视化组件单元时,使用placeholder(占位符)替代实际变量和字符串,一个
可视化组件对象(可视化组件POU)可被插入到其它可视化对象中并被多次使用(引用),
可向其提供各种配置(例如:观测一个功能块的不同实例)。
一个可视化组件对象插入到另一个可视化组件中,被称为引用。在线模式下的被引用
的可视化组件的运行与原始可视化组件相同。
当相关的转换文件(参见‘Project' 'Translate into other language')有效时 ,可视化
文本可以在线转换为其它语言。
可视化组件显示如下:
第8章 可视化组件

8.2 创建可视化组件
要创建一个可视化组件,必须在对象管理器中使用'Project' 'Object Add'命令,并

选择Visualization 选项卡,创建一个新的可视化组件对象。打开'New visualization'


对话框,输入新的可视化组件名。当输入的名称有效(未被使用过并无特殊字符存在),
选择OK关闭对话框。打开一个窗口,在此可编辑新的可视化组件。

8.2.1 可视化组件单元,插入

8.2.1.1 可视化组件单元,插入

你可以在你的可视化窗口中插入四种不同的几何的图形,包括位图,按钮和已有的可
视化组件。
你可配置的几何图形(Geometric forms)包括:矩形,圆角矩形,椭圆/圆和多边形。
进入‘Insert’菜单项并自由选择以下命令:'Rectangle', 'Rounded Rectangle', 'Ellipse',
'Polygon', 'Line', 'Curve', 'Bitmap', 'Visualization' 'Button'。在选项前显示(√)。你也可
以使用工具栏。按下鼠标绘制图形。
如果你此时用鼠标进入编辑窗口,你将看到表示相应符号的鼠标指针。 点击你的单元
所要求的起始点并按鼠标左键拖动它,直到达到此单元所要求的尺寸。
如果你希望创建一个多边形或一条线,首先用鼠标点击多边形的第一角或线的起点,
然后点击下一个点或角。双击多边形最后一个角将闭合此多边形并完成图形。如果你想创
建一条曲线(贝赛尔曲线),用鼠标先确定起始点及其它两个点以定义外界矩形。第三次
点击鼠标后画出一个弧。你可移动鼠标改变弧的终点位置,双击鼠标结束处理或添加另一
个弧。
另外请注意状态栏中所显示的选择模式和插入模式。

8.2.1.2 ‘Insert’ 'Rectangle'

使用此命令可在你现有的可视化组件中插入一个矩形。

8.2.1.3 'Insert' 'Rounded Rectangle'

使用此命令可在你现有的可视化组件中插入一个圆角矩形。

8.2.1.4 'Insert' 'Ellipse'

使用此命令可在你现有的可视化组件中插入一个圆或椭圆。

8.2.1.5 'Insert' 'Polygon'

使用此命令可在你现有的可视化组件中插入一个多边形。
第8章 可视化组件

8.2.1.6 'Insert' 'Line'

使用此命令可在你现有的可视化组件中插入一条线。

8.2.1.7 'Insert' 'Curve'

使用此命令可在你现有的可视化组件中插入一条 Bezier 曲线。

8.2.1.8 'Insert' 'Bitmap'

使用此命令可在你现有的可视化组件中插入一个位图。
按鼠标左键拖动至希望的大小。打开一个打开文件对话框。一旦你选择了需要的位图
文件,它将被插入到选定区内。

8.2.1.9 'Insert' 'Visualization'

使用此命令可在你现有的可视化组件中插入一个已经存在的可视化组件。
按鼠标左键拖动至希望的大小。打开已存在的可视化组件列表。一旦你选择了需要的
可视化组件,它将被插入到选定区内。
一个插入的可视化组件也可被称作引用(reference)。

8.2.1.10 ‘Insert’ 'Button'

使用此命令可在你现有的可视化组件中插入一个按钮。
按鼠标左键拖动单元至希望的大小。
如果为按钮配置了一个触发变量,它将通过按钮是否被按下来真实地显示此变量的状
态。相反,通过“按”此按钮触发变量。

8.2.2 使用可视化单元

8.2.2.1 选择可视化单元

使用鼠标选择单元。也可在单元列表中使用<Tab>键选择第一个单元,并再一次按键
跳至下一个单元。如同时按<Tab>和<Shift>键,将按单元列表中相反的顺序跳转。如需
选择多个单元,按住<Shift>键的同时接连地点击相应的单元;或按住鼠标左键拖动窗口
选择需要的单元。
如果需要选择所有单元,使用'Extras' 'Select All' 命令。
如果已进入单元列表(使用'Extras' 'Element list' 命令),你可在可视化组件中选
择相关的单元。

8.2.2.2 修改可视化组件

使用鼠标或<tab>键从已插入的单元中选择一个。在每个单元的各个角上将出现一个
小黑块。当选择多边形、线或曲线时,在单元中两角的中间边沿处将显示小黑块。
第8章 可视化组件

当选择一个单元后,旋转点(balance point)也同时被显示。你可以围绕这个点使用

一个设定的动作/角度旋转这个单元。旋转点显示为黑色,中间带有白色十字( )。你
可以按鼠标左键拖动这个点。用鼠标点击小黑块并拖动鼠标以改变单元的尺寸。
当选择一个多边形时,你可用此方法拖动多边形的每个独立的角。如果在操作的同时
按<Ctrl>键,则在此角的位置再插入一个角,并可以用鼠标拖动此角。使用<Shift>+<Ctrl>
可以删除一个角。

8.2.2.3 拖动可视化组件单元

按鼠标左键或箭头键可以拖动所选择的单元。

8.2.2.4 复制可视化单元

使用'Edit' 'Copy’ 命令(或使用<Ctrl>+<C>组合键,或相应的复制符号)及'Edit'


'Paste'.命令可插入一个或多个单元。

8.2.2.5 改变选择及插入模式

插入一个可视化单元后,将自动返回选择模式。如果你希望用此方法插入其它单元,

则需在菜单中再次选择相应的命令或者在工具栏中选择相应的图标 。
按<Ctrl>键的同时并按鼠标右键,可实现选择模式和插入模式之间的快速切换。
插入模式下,在鼠标指针位置将显示相应的图标,其名字将在状态栏中用黑字显示。

8.2.2.6 可视化组件中的状态栏

如果已选择了某个可视化组件,则在状态栏中以像素值显示鼠标的当前X和Y的位置,
像素值是相对于图像左上角位置的。如果鼠标指针定位在一个单元上,或者此单元正在处
理过程中,则显示此单元的序号。如果你已选择插入一个单元,那么也显示此单元(例如:
Rectangle)。

8.2.3 可视化组件单元,配置

8.2.3.1 ‘Extras’ 'Configure'

使用此命令,打开‘Configure element’对话框以设定所选择的可视化单元(参见l选择
可视化组件单元)。也可以双击此单元打开配置对话框。
第8章 可视化组件
在对话框的左侧选择一个类别,在右侧区域进行相关设置。
根据所选择的可视化单元,可以选择如下类别:
形状(Shape) 矩形,圆角矩形,椭圆
文本(Text) 所有
颜色(Color) 矩形,圆角矩形,椭圆,多边形,直线,曲线
绝对运动(Motion absolute) 所有
相对运动(Motion relative) 所有,除了多边形,直线,曲线
变量(Variables) 所有
输入(Input) 所有
工具提示(Tooltip) 所有
位图(Bitmap) 位图,按钮
可视化组件(Visualization) 可视化组件

在单元配置中的程序变量有效的位置,以下输入是可能的。
·变量名,可使用输入帮助。
·表达式,由所访问的组件,带有常数索引的区域输入项,变量和直接地址组成。
` ·运算数和常数,可以和上述表达式配合使用。

允许的表达式例子:
x+y
100*PLC_PRG.a
TRUE
NOT PLC_PRG.b
9*sin(x + 100)+cos(y+100)
不允许调用功能。无效表达式在登陆时产生一个错误信息("Invalid Watch
expression...")。例如:fun(88), a := 9, RETURN。
写全局变量有两种可能的方法:".globvar" 同 "globvar" 是相等的。但在复合表达式
中不允许带点的格式。
参见下文的占位符。

8.2.3.2 占位符

在配置对话框中的变量类别或文本类别的位置都可以设置一个占位符。如果在程序中
不直接使用该可视化组件对象而是被作为一个引用插入到其它可视化组件对象中,则它是
有意义的。。当配置这样一个引用(Reference)时,占位符可以被替换为变量名或文本。
用两个($)符号圈起的文本是一个有效的占位符(例如:$variable1$, variable$x$)。
对每个占位符,在占位符列表对话框中可定义一个“数值组” 作为一个输入规范(使用
'Extras' 'Placeholder list' 命令打开该对话框。)

8.2.3.3 ‘Extras’ 'Placeholder list'

此对话框适用于具有输入焦点的可视化组件对象。显示设置在对象中的占位符,并且
当配置这个可视化组件的一个引用时,允许优先对每个占位符定义其将被何值代替。
第8章 可视化组件
可替换占位符的输入占位符列表如下:

在Placeholder栏中列出所有在可视化组件中提供的占位符。Element number栏显示配
置有占位符的单元。在Replacements栏中可以输入若干个字符串,它可以作为引用中的一
个输入替换占位符。输入内容之间必须用逗号分开输入。如果指定了一个不可替换字符串,
则当配置包含它的引用时,占位符可被相应的文本替换。

8.2.3.4 形状(Shape)

在可视化组件单元配置对话框中,你可以在 Shape 类别中选择矩形,圆角矩形,椭


圆,各个多边形,直线和曲线。外形为已设定的尺寸。
配置可视化组件单元对话框(形状)

8.2.3.5 文本

在配置可视化组件单元对话框中,在文本(Text)类别中可为单元指定一个文本,其
可以直接输入或者被一个占位符替换。
在 Content 区域中输入文本。使用组合键<Ctrl>+<Enter>可以换行。使用
<Crtl>+<Tab>,停止输入。
第8章 可视化组件
如果在文本中输入"<name>",则这个位置在在线模式下,将被Variables 类别中
Text Output 区域内输入的变量的值所代替。

提示:如果一个文本字符串被传送到翻译文件( translation file ) 中,在在线


模式下可以被翻译成其它语言,在它的开始和结束用“#”分开。例如:"#Pump 1#" 或
"#Pump# 1"。

例如:“#Pump 1#”或“#Pump# 1”
例子中的第二种情况,在文字 Pump 多次产生的情况下(Pump 1, Pump 2, 等.),可
以在翻译时避免多次出现。
在水平左对齐(horizontally left),居中(center),右对齐(right) 和 垂直顶部对
齐(vertically top),居中(center),底部对齐(bottom) 的单元中,配置文本在在线状
态下以指定的对齐方式显示。
如果使用字体(Font)按钮,显示选择字体对话框。选择需要的字体并用OK按钮确
认。用标准字体(Standard Font)按钮可以设置字体,该字体为在项目选项中('Project'
'Options' 'Editor') 所选择的字体。如改变字体,则此字体将显示在所有单元中,除了那些
使用Font按钮明确规定为其它字体的单元。
配置可视化组件单元(文本)对话框如下:

8.2.3.6 线宽度

在配置可视化组件单元对话框,你可以为单元选择线的宽度。在预定义选项中可以选
择1至5像素宽度的设置,也可用手动输入其它值。
配置可视化组件单元(线宽)对话框入下:
第8章 可视化组件

8.2.3.7 颜色

在配置可视化组件单元对话框的颜色类别中,你可以为单元的内部及外框选择初始颜
色和报警颜色。选择选项 no color inside 和 no frame color ,你可以创建透明单元。
配置可视化组件单元(颜色)对话框如下:

如果在改变颜色(Change Color)区域的变量(Variables)类别中输入了一个布尔
变量,则当变量值为 FALSE 时,此单元显示 Color 区域中设置的颜色,变量值为 TRUE
时,此单元显示报警色(Alarm Color)。

提示:仅当PLC处于在线模式时,颜色改变功能才能激活。

如果需要改变外框的颜色,则按 Frame 按钮打开选择颜色对话框。


在此,可以从初始颜色和用户定义颜色中选择要求的颜色。按定义颜色(Define Colors)
键选择自定义颜色。

8.2.3.8 绝对位移(Motion absolute)

在可视化组件单元配置对话框的 Motion absolute 类别中,变量可输入到


X-Offset 区域或Y-Offset 区域。根据变量的数值,可以在X,Y方向上移动单元的位置。
第8章 可视化组件
在 Scale 区域中输入的变量,可根据其值线性地改变单元的大小。
在 Angle 区域中输入的变量,可将单元按定义的角度旋转(正值= 数学上的正方向=
顺时针)。数值的单位为度。对多边形来说,每一个点都旋转,也就是说多边形旋转。对
其它所有单元来说,旋转时,其上边界总是保持在最上方位置。
单击一个单元后,单元上将出现一个旋转点,显示为一个小黑圈,中心带有白色十叉
( )。你可用鼠标左键拖动此旋转点。
可视化组件单元配置对话框(绝对移动)如下:

8.2.3.9 相对位移(Motion relative)

在可视化组件单元配置对话框的相对位移(Motion Relative)类别中,可为单元边
界定义一个变量。根据变量值的不同,相应单元的边界可以移动。在区域中输入变量的最
简单的方法是使用输入帮助(<F2>)。
有四个输入对应单元的四个边。角的基准点总是在零位。在相对栏中,变量的新值将
按此值以象素为单位移动边界。因此,输入变量应为整型变量(INT)。

提示:正值向下移动水平边界,或向右移动垂直边界。

可视化组件单元(相对移动)配置对话框如下:
第8章 可视化组件

8.2.3.10 变量

在可视化组件单元配置对话框的变量(Variable)类别中,你可以输入可视化组件单
元状态所要求的变量。在区域中输入变量最简单的方法是使用输入帮助。
你可以在 Invisible 和 Change color 区域内输入布尔变量。在区域输入的变量的
数值确定其动作。如果 Invisible 区域内的变量值为 FALSE ,则可视化组件单元为可见
的。如果变量值为TRUE ,则可视化组件单元为不可见。
如果 Change color 区域内的变量值为 FLASE ,则可视化组件单元将以缺省颜色显
示,如果变量值为 TRUE,则单元将以报警颜色显示。
除了Text 类别中的Content区域中的文本外,只要你已经输入了"<name>",在
Textdisplay 区域中,就可以指定一个其数值显示在可视化组件中的变量。在线模式下,
此"<name>"将被 Textdisplay 区域内的变量值代替。如果你希望在在线模式下使用键盘
编辑此变量的值,则可在输入(Input)类别中通过'Text input of variable' 'Textdisplay' 实
现。
可视化组件单元(变量)配置对话框如下:

8.2.3.11 输入(Input)

选择Toggle variable 区域,允许你在在线状态下,使用鼠标点击单元,以触发位于


输入区域内的变量值。你可以通过<F2>键获得输入帮助。布尔变量值随着每次点击鼠标,
可从 TRUE 变为 FLASE,再从 FLASE 变为 TRUE。
对于 Tip Variable 选项,你也可以使用输入帮助功能来输入变量。此功能允许你在在
线模式下,改变输入区域中布尔变量的值,TRUE 或 FALSE。将鼠标指针指向单元,按鼠
标键并保持它。如果选项 Tip FALSE 功能被激活,当鼠标按下时此值被置为 FALSE,否则
此值将被置为 TRUE。当释放鼠标键时,变量值返回到初始值。
选择 Zoom to Vis... 选项,允许你在编辑区域中输入同一项目中的可视化组件对象
名。在线模式下,用鼠标点击单元可切换至显示此可视化组件的窗口。当关闭当前窗口后,
目标可视化窗口将首先打开。在线模式下,点击鼠标可改变已输入到可视化窗口中的单元。
如果一个字符串类型的程序变量(例如 PLC_PRG.XXX)被输入以替代一个可视化组件对
象,则此变量用于定义为根据鼠标点击而打开的可视化组件对象的名字。
第8章 可视化组件
如果跳转到一个包含有占位符的可视化组件,当调用时,可直接被变量名或文本代替。
为此请遵照以下语法:

<Visuname>(<Placeholder1>:=<Text1>,
<Placeholder2>:=<Text2>,..., <Placeholder
n>:=<Textn>)

例如:
调用可视化组件visu1, 在visu1中的占位符$var_ref1$和$var_ref2$分别被
PLC_PRG.var1和PROG.var1变量代替。

visu1(var_ref1:=PLC_PRG.var1, var_ref2:=PROG.var1)

如果在 Zoom to vis 区域中输入 "ZOOMTOCALLER" 命令,在线模式时,通过鼠标点


击单元可以返跳回上一个调用可视化组件。
选择“Execute program”选项允许你在输入区域输入任意可执行程序,然后在在线模式
下通过点击单元来执行它。例如:notepad C:/help.txt (记事本程序被启动并且help.txt
文件被打开)。
在线模式下,如果你选择了Text input of variable 'Textdisplay',你将在这个可视化组
件单元中获得一个编辑区。你可以在此输入一个值,按<Enter>键,将数值写入变量中,
并显示在Variables 类别中的 Textdisplay 区域中。
可视化组件单元(输入)配置对话框如下:

8.2.3.12 工具提示(ToolTip)

在线模式下,当鼠标光标经过对象时则出现一个文本提示框。可以在该类别中设置所
显示的文本内容。使用组合键<Ctrl> + <Enter>设置文本格式的行间分隔。

8.2.3.13 位图(Bitmap)

在可视化组件单元配置对话框中的位图(Bitmap)类别中,可以输入位图功能选项。
在 Bitmap 区域输入位图文件名及其目录。你可以使用 ... 键以打开标准的Windows
第8章 可视化组件
资源管理器对话框,选择希望的位图文件。
所有其它的输入都将影响位图文件的外框。
通过选择各向异性(Anisotropic)、各向同性(Isotropic)或固定性(Fixed)选项,
你可以定义位图改变尺寸结构时的特性。各向异性意味着位图将保留与外框相同的尺寸,
它允许你单独改变位图的高度或宽度。各向同性意味着当整个尺寸改变时,位图将保持相
同的比例 (也就是,宽度和高度的关系保持不变)。如果选择固定性,位图的原始尺寸将
保留,而不考虑外框尺寸的大小。
如果Clip 选项与 Fixed 同时被选择,只有包含在框架中的位图部分可以显示。
如果选择 Draw 选项,外框将按照在颜色对话框中的颜色和报警颜色按钮中所选择的
颜色显示。报警颜色只有当变量类别中Change Color区域中的变量为TRUE时才会被使用。
可视化组件单元(位图)配置对话框如下:

8.2.3.14 可视化组件

在可视化组件单元配置对话框的Visualization 类别中,你可以在一个可视化组件中
以一个元素的方式使用另一个可视化组件。在 Visualization 区域输入可视化组件名。
使用 ... 键打开包含该项目中所有有效的可视化组件对话框。除了当前的可视化组件外,
其它任意组件都可以使用。
所有其它输入都将影响可视化组件的外框。
如选择 Draw 选项,此外框将按照颜色对话框中的在颜色和报警颜色按钮中所设定
的颜色显示。报警颜色只有当Variables 类别中Change Color 区域中的变量为TRUE
时才会被使用。
如选择 Isotropic , 当整个尺寸改变时,显示比例不变 (也就是说,宽度和高度的关
系将是同样的)。否则比例将改变
如在线模式下选择 Clip ,则只有可视化组件的原始部分可被显示。例如,如果对象
延伸至原始显示区外,它将被锁定在可视化组件中,外部将完全消失。
按 Placeholder 键将打开‘Replace placeholder’对话框。在占位符栏中列有插入到可
视化组件POU中的所有占位符。在‘Replacements’栏内提供可以替换此占位符的可选的预
定义数值。具有哪些可能的替换取决于是否在'Extras' 'Placeholder list'对话框中预先定义
了数值组。如果是这样,它将显示在复合框中以供选择。如果没有预先定义,双击替换栏
中的相应区域,打开编辑区填写希望的选项。
替换占位符的另一个方法是通过在Zoom to vis 中的输入,在调用可视化组件时直接
运行。Zoom to vis 位于可视化组件单元配置对话框的‘Input’类别中。
第8章 可视化组件

提示:按顺序排序替换功能是不可能的。因此占位符将不能被替换为已经包含占位符文
本!

提示:当使用占位符时,基于项目的编译,不能在可视化组件单元配置中立即检查项目
编辑上的无效输入。因此,在线模式下适当的错误信息会首先出现。

例如:占位符概念的应用。
借助于相同的可视化组件引用的帮助,功能块实例可以很容易地显示。例如,在配置
显示功能块fu的变量的可视化组件visu时,可以用变量名前面加占位符$FUB$表示(例如:
$FUB$.a )。如果 visu 中的一个引用被使用(通过在另一个可视化组件中插入 visu 或
者通过'Zoom to vis.' 被调用),则在配置这个引用时,占位符$FUB$ 可被功能块 fu 的
实例名所代替(例如:$FUB$ -> PLC_PRG.inst_1)。在的另一个visu 引用中,$FUB$ 可
以被另一个功能块fu的实例名代替。
可视化组件单元(可视化组件)配置对话框如下:

8.2.4 其它可视化组件单元功能

8.2.4.1 'Extras' 'Send to Front'

用此命令可将选定的可视化组件单元放置在前面。

8.2.4.2 'Extras' 'Send to Back'

用此命令可将选定的可视化组件单元放置在后面。

8.2.4.3 'Extras' 'Select Background Bitmap'

用此命令可以打开选择文件对话框。选择带有扩展名"*.bmp"的文件。所选的位图文
件将作为你的可视化组件的背景。
使用命令'Extras' 'Clear Background Bitmap' 可删除此位图。
第8章 可视化组件

8.2.4.4 'Extras' 'Clear Background Bitmap'

用此命令可清除当前可视化组件的背景位图。
使用命令 'Extras' 'Select Background Bitmap' 为当前可视化组件选择一个位图。

8.2.4.5 'Extras' 'Align'

用此命令排列所选择的可视化组件单元。
可选择以下排列方式:
z 左对齐(Left): 每个单元的左边界以最左端单元为准排列。
z 右对齐(Right)/顶端对齐(Top)/底端对齐(Bottom)为同样方式。
z 水平中心(Horizontal Center): 每个单元按所有单元的平均水平中心排列。
z 垂直中心(Vertical Center): 每个单元按所有单元的平均垂直中心排列。

8.2.4.6 'Extras' 'Select All'

此命令用于选择当前可视化组件对象中所有可视化组件单元。

8.2.4.7 'Extras' 'Select Mode'

此命令用于切换选择模式。也可使用图标 完成或者在按<Ctrl>键的同时按鼠标右键。

8.2.4.8 'Extras' 'Element list'

此命令将打开一个包含所有可视化组件列表的对话框,包括数量(number),类型
(type),位置(position)。位置是相对于单元的左上角和右下角的 x 和 y 的位置。
当选择了一个或多个条目后,在可视化组件中的对应单元被标记为可视控制,如果必
要,屏幕将滚动至包含单元的可视化组件部分。
使用To front 按钮将选择的可视化组件放置在最前端。
使用To behind按钮将其移至后面。
使用 Delete 按钮,将所选的可视化组件单元删除。
使用 Undo 和 Redo 按钮,取消或恢复以前进行的操作,同命令'Edit' 'Undo'和 'Edit'
'Redo'相同。在对话框中,你可以察看已经做过的修改。
按 OK ,关闭对话框确认更改。
使用 Configure 打开单元配置对话框
单元列表对话框如下:
第8章 可视化组件

8.2.4.9 'Extras' 'Settings'

使用此命令,打开一个对话框,你可以进行一些对可视化组件的设定。

提示:在线模式下也可以编辑 Display, Frame 和 Language 。

· 显示(Display): 在 Zoom 区域输入一个缩放因数,从10%到500%,以减小或


扩大可视化组件的显示尺寸。
可视化组件(显示)设置对话框如下:

·框架(Frame): 如选择Auto-scrolling, 当你绘制或移动可视化组件单元到达边界时,


可视化组件窗口的可见部分将自动移动。如选择Best fit in Online mode,在线模式下,
无论窗口尺寸的大小,包括所有单元在内的全部可视化组件将显示在窗口中。如选择
第8章 可视化组件
Include Background Bitmap,背景位图也将适应窗口,否则设定值只有可视化单元有效。
·栅格(Grid): 在此可定义离线模式下是否显示栅格。可视点间的最小距离为10,即
使输入的尺寸比它小。在此情况下,所显示的栅格点间的距离为输入尺寸的倍数。选择
Active使单元在绘制或移动时被放置在栅格的捕捉点上。栅格点间的距离在Size区域中设
定。
·语言(Language): 在此你可以指定在Text 和 Text for Tooltip 选项中为一个单
元所分配的文本以何种语言显示。
为此,项目必须有一个翻译文件*.tlt 或为可视化组件创建特定的语言文件*.vis 。

提示:只有在在线模式下,文本显示才可以改变。

关于创建翻译文件,请参见前面的章节。
关于为可视化组件创建特定语言文件*.vis ,请参见下文。此选项对在版本2.1以下创
建的项目兼容。
为选择一个翻译文件或者一个语言文件,需在对话框中激活Language file 选项,并

且在输入区输入文件名和路径,或者通过按钮 打开对话框获得标准文件的帮助。
在 Language 下面的选择窗口中,你可以在German 和 English 中选取。
可视化组件语言文件选择对话框如下:

创建一个*.vis语言文件:
如需为可视化组件创建一个新的语言文件*.vis ,则按如下操作:
打开设定(Setting)可视化组件对话框,语言(Language) 类别。
选 language file 选项。在右侧输入区中输入所希望的存储路径。文件扩展名为 .vis。

你也可以通过按钮 打开'Open file'对话框来完成。如果具有扩展名.vis 的语言文件已


经存在,其将在此显示。
在邻近 Language 的输入区,填写可视化组件中当前使用的语言关键字,例如:
"german" (或"D")。然后按 Save 按钮。一个带有扩展名.vis 的文件将被创建,其可以通
第8章 可视化组件
过标准文本编辑器编辑。例如:你可以使用记事本打开此文件。
为一个可视化组件(语言类别)创建的一个语言文件显示如下:

你可获得可视化组件中当前语言的文本变量列表。它包含此列表题目的标记,例如
"1=german" 作为对题目[german]的标记。通过拷贝可扩展此列表,然后用英文替换德文
并设定一个新题目[english]。在行1=german 后又加上了 2=english。
用准备好的一种语言观查可视化组件,再次打开语言(Language)对话框。 在
Language 选项区域,你可以选择德文(german)或英文(english)。

提示:只有切换到在线模式后显示文本才会改变。

通过可视化组件单元调用语言在线帮助:
随同可视化组件单元的不同帮助文件的调用可以同可视化组件当前输入语言绑定在一
起。因此,在'Configure element'对话框的'Execute program'位置,必须为这个单元输入
INTERN HELP 命令,并且在PROSYD 1131 .ini文件中必须含有 [Visu-Helpfiles] 部分。
在下面,相应的帮助文件必须分配给在可视化组件所选择的语言。例如:
[Visu-Helpfiles]
German=C:\PROGRAMME\HELP_D.HLP
English=C:\PROGRAMME\HELP_E.HLP

8.2.4.10 在线模式下的键盘操作

在线模式下,可视化组件单元可通过键盘进行操作。
按 <Tab> 键,在单元列表中选择第一个单元。每次按此键,单元列表中的单元将依
次被选择。在按住<Shift>键的同时按<Tab>键则选择上一个单元。
箭头键可以按方向选择当前单元的相邻单元。
<Space bar>键用于激活所选择的可视化组件单元。如果此单元包含有一个文本输出
变量,则将打开一个输入文本区域,其显示变量文本内容。按<Enter>键确认写入的值。
第8章 可视化组件
在线模式下,引用中的独立单元的处理与在被引用的可视化组件中的相应单元相同。
因此,与独立单元一样,可用鼠标或键盘进行输入和操作;所显示的工具提示文本随单元
而定。当处理单元列表时,例如:使用Tab键从一个输入单元跳转至下一个时,在跳转到
列表中的下一个单元之前,在该引用位于单元列表中的位置对引用中的所有独立单元的处
理。

提示:在线模式下通过键盘操作,对于 PROSYD 1131 操作版本是最重要的。

8.2.4.11 在线模式下的 'File' 'Print'

在线模式下,'File' 'Print' 用于打印可视化组件窗口中的内容。当在可视化组件中移动


单元时,延伸至窗口边界外的可视化组件将导致冲突。

8.2.4.12 库文件中的可视化组件

可视化组件也可以存储在库文件中,作为一个 POU 库供给项目使用。它们可以作为


调用被插入,就像直接在项目中显示的可视化组件一样。或者在其它可视化组件的输入配
置中使用 "Zoom to vis." 命令调用。

提示:项目中的可视化组件必须具有独立的名字。如果从库文件中调用一个可视
化组件,其名字在项目中已经使用了,就会产生问题。因为在程序中处理reference或显示
调用时,优先执行项目中的可视化组件,其次为被载入库中的可视化组件。
增加逻辑块的方法

右 键 选
operation

点击要加入
逻辑的管脚
CoDeSys 编程简介

上海派芬自动控制技术有限公司

2004-10-15
CoDeSys编程简介

目录
第一章 编程须知
一、控制器寄存器地址
二、程序结构
三、存储配置说明
四、变量说明
第二章 编程语言及数据类型
一、指令表 IL(Instruction List)
二、梯形图
三、结构化文本 ST(Structured Text)
四、功能模块图 FBD(Function Block Diagram)
五、顺序流程图 SFC(Sepuential Function Chart)
六、数据类型
1、在 CoDeSys 环境中,有以下标准数据类型:
2、自定义数据类型:
第三章 程序的创建
一、程序结构
二、调用库文件
三、程序实例
I/O 初始化程序
第四章 指令系统
一、操作块 Operator
1、IEC Operators(运算符) :
2、Bitstring Operators(逻辑操作):
3、Bit-shift Operators(移位操作):
4、Selection Operators(选择操作):
5、Comparison Operators(比较运算) :
6、Address Operators(地址):
7、Calling Operators(调用操作):
8、Type Conversion Functions(转型功能)

9、Numeric Functions(数据计算功能):
二、库文件 Library
1、Standard.lib 标准库
1.1.String function(字符串运算):
1.2.Trigger(触发保持):
1.3.Counter(计数器):
1.4.Timer(计时器):
2.AnalogFilter 模拟量标定库
2.1.单向标定模块
2.2.双向标定模块
2.3.平均值模块
2.4.RC 滤波模块
2.5.Cut 模块
2.6.HP 模块
2.7.Transfer 模块
2.8.Scale 模块
3.PWMControlvoltageAmpere -funktio 库:
3.1.Motion 模块
3.2.Motion Volt 模块
3.3.EndAttenuation 模块
3.4.Smooth 模块
3.5.MotionControl 模块
3.6.CheckFault 模块
3.7.ContolMotionErrors 模块
3.8.MotionControlVolt 模块
第五章 CANopen 编程
一、物理层
二、CANopen 使用标准的 CAN 桢,有 11 位标识符, 0-8 bytes 有效数据。
三、CAN 总线
四、主从关系
五、PDO 协议
六、SDO 协议
七、预定义连接设置
八、CANOPEN 在 EPEC 3G IEC 模块中的应用
(1)CANopen 的初始化。
(2)发送 PDOs 到 CANopen 总线
(3)从 CANOPEN 总线接收 PDO
第六章 硬件功能库的说明
一、Configure_PI 功能模块
二、Reset PI 功能模块
三、Params Store 功能模块
四、Set PWM frequency 功能模块
五、Temperatures 功能模块
六、SET_AI_TYPE 模块
CoDeSys 编程简介 2004-10-15 Page 2/50

第一章 编程须知

一、控制器寄存器地址

地址类型:

Input:%I Output::%Q Marker: %M

大小:

X:bit W:word B:byte D:dword

%IX0.0...IX0.15=%IW0,

%QX0.0...QX0.15=%QW0,

%IW0=%IB1+%IB2,

%QW0=%QB1+%QB2,

%MW0-%MW247 为 248 个应用参数。

例:%IX0.0-IX3.16 为开关量输入,%IW100-IW116 为模拟量输入。

二、程序结构

一个工程文件包含 PLC 程序里的所有对象:POUS(program organization units)、数据类型、资

源。POUs 包括主程序(PRG)、子程序(PRG)、功能块(FB)、函数(FUN)及语句。

※主程序必须命名为 PLC_PRG。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 3/50

子程序(PRG)

子程序(PRG) 函数(FUN)

函数(FUN) 功能块(FB)
POUs PLC PRG
功能块(FB)

语句

※子程序可调用函数和功能块,但函数,功能块不能调用子程序,且子程序中的中间变量值

是可视的,但函数,功能块里的中间变量值是不可视的,且函数没有返回值。

三、存储配置说明

Base 代表地址 Size 代表大小

Code 代表程序代码

Global 代表全局变量

Memory 代表存储空间

Input 代表输入变量

Output 代表输出变量

Date segments 代表数据大小(可改变)

※ 不同的控制器相应的地址和大小不同。

四、变量说明

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 4/50

在工程文件中,按适用范围有两种类型的变量,全局变量(Global)、局部变量(local)。全局

变量存在于程序的任何模区域,而局部变量只存在于子程序,函数和功能块中。全局变量的说明

在“resource”的 “global veriable”里:

resource

局部变量的说明在“程序体”上部的局部变量说明区。

变量说明有两种方式:一种是在变量区进行说明;另一种是自动说明。自动说明是在主菜单

里选择“Project”,“Option”,“Edit”,出现以下对话框:

选中“Autodeclaration”。这样,当编写程序,写到新的变量时,自动弹出对话框:

输入要定义的变量类型、地址、初始值。局部变量不用指定地址。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 5/50

第二章 编程语言及数据类型

CoDeSys 是一种功能强大的 PLC 软件编程工具,它支持 IEC1131-3 标准 IL、ST、FBD、LD、

SFC、CFC 六种 PLC 编程语言,用户可在同一项目中根据需要选择不同的语言编写子程序、功能

模块等。

一、指令表 IL(Instruction List)

IL 程序设计语言是用布尔助记符来描述程序的一种程序设计语言,它与计算机中的汇编语言

非常相似,采用布尔助记符来表示操作功能。

指令 描述

LD 读取操作数的值;

ST 把当前值存入操作数;

S 把布尔量操作数置 TRUE;

R 把布尔量操作数置 FALSE ;

AND 逻辑与;

OR 逻辑或;

NOT 逻辑非;

XOR 逻辑异或;

ADD 加;

SUB 减;

MUL 乘;

DIV 除;

MOD 求余数;

GT >;

GE >=;

EQ =;

NE <>;

LE <=;

LT <;

JMP 跳转至标志行;

CAL 调用子程序;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 6/50

RET 返回主程序;

例:

其余指令参见 CoDeSys 手册。例:

LD TRUE (*读取 TRUE*)

ANDN BOOL1 (*与变量 BOOL1 的反值进行 AND 运算*)

JMPC mark (*当结果为 TRUE 时,跳转至 "mark"行*)

LDN BOOL2 (*变量 BOOL2 值取反*)

ST ERG (*把结果存至 ERG*)

JMP end (*跳转至 "end"行*)

mark: (*"mark"标志行*)

LD BOOL2 (*读取 BOOL2 的值 *)

ST ERG (*把 BOOL2 存至 ERG*)

End: (*"end"标志行*)

二、梯形图

梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。这种程序设计

语言采用因果关系来描述事件发生的条件和结果。每个梯级是一个因果关系。在梯级中,描述事

件发生的条件表示在左面,事件发生的结果表示在后面。它来源于继电器逻辑控制系统的描述。

指令参见 CoDeSys 手册,例:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 7/50

梯形图程序设计语言的特点是:

与电气操作原理图相对应,具有直观性和对应性;主要应用于开关量逻辑控制目的的程

序。

与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power FLow)不是实际意

义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控

制技术的有关概念区别对待。

与指令表程序设计语言有一一对应关系,便于相互的转换和程序的检查。

三、结构化文本 ST(Structured Text)

ST 程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于高

级语言的程序设计语言。在大中型的可编程序控制器系统中,尤其是大量的模拟量运算和处理,

常采用 ST 语言来描述控制系统中各个变量之间较复杂的控制运算关系,完成所需的功能或操作。

ST 语言与BASIC语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法

及语句的种类等方面都进行了简化。

指令 描述

AND 逻辑与;

OR 逻辑或;

NOT 逻辑非;

XOR 逻辑异或;

+ 加;

- 减;

* 乘;

/ 除;

MOD 求余数;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 8/50

函数名(参数表) 函数调用;

EXPT 幂函数;

<,>,<=,>= 比较;

例:

ST 语言除有一般算术运算、逻辑运算、表达式、调用子程序等指令外,还有一些结构化的语

句模块。

条件语句:

IF <逻辑表达式 1> THEN (*表达式为 TRUE 时,执行功能块一*)

... (*功能块一*)

ELSIF <逻辑表达式 2> THEN (*表达式为 TRUE 时,执行功能块二*)

... (*功能块二*)

ELSIF <逻辑表达式 n> THEN (*表达式为 TRUE 时,执行功能块 n*)

... (*功能块 n*)

ELSE

... (*功能块 n+1*)

END_IF (* 条件结束*)

其余指令用法参见 CoDeSys 手册。

四、功能模块图 FBD(Function Block Diagram)

功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,不同的功能模块有不同

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 9/50

的功能。它有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其它端子,完成所

需的控制运算或控制功能。功能模块可以分为不同的类型,在同一种类型中,也可能因功能参数

的不同而使功能或应用范围有所差别,例如,输入端的数量、输入信号的类型等的不同使它的使

用范围不同。由于采用软连接的方式进行功能模块之间及功能模块与外部端子的连接,因此控制

方案的更改、信号连接的替换等操作可很方便实现。功能模块图程序设计语言的特点是:

以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;

功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较

好的易操作性;

对控制规模较大、控制关系较复录的系统,由于控制功能的关系可以较清楚地表达出来,因

此,编程和组态时间可以缩短,调试时间也能减少;

用户自己可以用不同的语言编写特定的功能模块,也可在用其他语言编程时插入功能模块。

例:

上例中,共有五个模块,分别实现 PLC 初始化、输入模拟量标定、工作控制、PWM 输出、

参数 FLASH 等五种功能。

五、顺序流程图 SFC(Sepuential Function Chart)

SFC 语言是用顺序流程图来描述程序的一种程序设计语言。采用顺序流程图的描述,控制系

统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员

设计思想的沟通,便于程序的分工设计和检查调试。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 10/50

SFC 语言的特点是:

以功能为主线,条理清楚,便于对程序操作的理解和沟通。

对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间。

能较简单和清楚地描述并发系统和复杂系统的所有现象,并能对系统中存有的死锁、不安全

等反常现象进行分析和建模,在模型的基础上能直接编程 。

例:

当且仅当顺序条件为真时,程序才能往下执行。每一步功能块可用不同语言编写。同等条件的

功能块,可指定时间执行顺序。

六、数据类型

1、在 CoDeSys 环境中,有以下标准数据类型:

BOOL(布尔量)

SINT(短整型) 、INT(整型数) 、DINT(双整型数)

USINT(无符号短整型) 、UINT(无符号整型数) 、UDINT(无符号双整型数)

BYTE(位)、WORD(字) 、DWORD(双字)

STRING(字符量)

REAL(实型数) 、LREAL(长实型数)

TIME(时间量)

数值取值范围:

Type 下限 上限 存储空间

BYTE 0 255 8 Bit

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 11/50

WORD 0 65535 16 Bit

DWORD 0 4294967295 32 Bit

SINT -128 127 8 Bit

USINT 0 255 8 Bit

INT -32768 32767 16 Bit

UINT 0 65535 16 Bit

DINT -2147483648 2147483647 32 Bit

UDINT 0 4294967295 32 Bit

2、自定义数据类型:

自定义数据类型有数组、指针、结构等,具体操作参见 CoDeSys 手册。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 12/50

第三章 程序的创建

一、程序结构

一个 POU 由两部分组成:变量说明部分和程序体。例:

工程文件名

对象管理区 局部变量说明区

程序体

创建一个工程文件时,打开 CoDeSys 后选择\主菜单\File\New,这时出现一个对话框:

这是此工程文件的第一个 POU,已经命名为一个默认的名字 PLC_PRG,类型被定义为程序。

不要改动名字及类型,选择一种要编程的语言,创建第一个 POU。因为在任何一个工程文件中,

必须要有这一文件,一般地,把它作为主程序。

要创建其他的 POU 时,把光标移到对象管理区,按鼠标右键,选择“Add Object”,或选择主

菜单 “Project” “Object” “Add”,出现上述菜单,输入文件名、选择 POU 类型及编程语言,按“OK”

结束。

当你存盘时,系统会提示你输入工程文件名,文件名的命名原则跟 Windows 文件名要求一致。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 13/50

二、调用库文件

CoDeSys 有大量的库文件(*.lib)供用户编程时调用。当你要调用某一操作指令时,把包含

该指令的库文件调入当前工程文件的库中。操作如下:

点击主菜单“Window”, “Library Manager”,弹出对话框:

库文件区

将光标移到库文件区,按右键,选择“Additional Library…Ins”,弹出对话框:

选中要用的文件即可。关于一些库文件的详细说明,请参看下一章。

三、程序实例

这里,以演示台的例子来说明程序建立的过程。该演示台用两个万向手柄控制八个灯泡,每

个灯泡对应一个手柄某一方向,手柄位移的大小控制灯泡的亮度。本例采用 2023 控制器。首先,

编写项目的控制方案和程序流程,对控制器的 I/O 口进行分布。按前面的方法建立工程文件取名

Performance,并以 PLC_PRG 为主程序,采用 FBD 语言。接下来设置 I/O 口,点击对象管理取的

“Resources”按扭,弹出对话框:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 14/50

把 “Global Varibels”下面的“Access_Varibles”更名为“IO_2023”, “Global_Varibles”更名为

“Parameter”。双击 “IO_2023”,设置 I/O 口,如下图:

在主程序中,先要对 I/O 进行初始化,编写 I/O 初始化模块,并在主程序的第一模块调用该模

块,然后编写其他程序模块。主程序模块如下:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 15/50

I/O 初始化程序如下:

在 此 程 序 中 , “ ai_cali” 模 块 为 手 柄 输 入 标 定 , “ motion_output” 为 PWM 信 号 输 出 ,

“PARAMS_S~RE”为参数固化模块。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 16/50

第四章 指令系统

一、操作块 Operator

1、IEC Operators(运算符):

ADD (加法)

MUL (乘)

SUB (减)

DIV (除)

MOD (求余)

2、Bitstring Operators(逻辑操作):

AND (与)

OR (或)

XOR (异或)

NOT (非)

3、Bit-shift Operators(移位操作):

SHL (左移)

SHR (右移)

ROL (循环左移)

ROR (循环右移)

4、Selection Operators(选择操作):

SEL (选择) G G:=FALSE


SEL
IN0 OUT OUT:=IN0

IN1 G:=TRUE

OUT:=IN1

MAX (最大值)

MIN (最小值)

LIMIT (比较选择):

IN>MAX:OUT:=MAX;

IN<MIN: OUT:=MIN;
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 17/50

MUX (多路选择):

OUT:=MUX(IN0,…,INk,…INn);

OUT:=Ink;

5、Comparison Operators(比较运算):

GT (大于)

LT (小于)

LE (小于等于)

GE (大于等于)

EQ (等于)

NE (不等于)

6、Address Operators(地址):

ADR

7、Calling Operators(调用操作):

CAL

8、Type Conversion Functions(转型功能):

BOOL_~ (布尔值转型)(INT/STRING/TIME/~D/DATE/DT 等)

~_BOOL (转型成布尔值)(BYTE/INT/TIME/STRING 等)

INT_~_SINT/REAL (整数类型转换)

REAL_~/LREAL_~ (实数型/长实数型转型)(INT 等)

TIME_~/TIME_OF_DAY (时间转型)(STRING/DWORD/SINT 等)

DATE_~/DT_~ (日期转型)(BOOL/INT/BYTE/STRING 等)

STRING_~ (字符串转型)(BOOL/WORD/TIME 等)

TRUNC(取整)

9、Numeric Functions(数据计算功能):

ABS (取绝对值)

SQRT (开方)

LN (取自然对数)

LOG (取对数)

EXP (e 求幂)

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 18/50

SIN (正弦)

COS (余弦)

TAN (正切)

ASIN (反正弦)

ACOS (反余弦)

ATAN (反正切)

EXPT (求幂)

二、库文件 Library

1、Standard.lib 标准库

1.1.String function(字符串运算):

LEN (长度计算)

LEFT (左取位)

RIGHT (右取位)

MID (中间取位)

CONCAT (字符串叠加)

INSERT (插入)

DELETE (删除)

REPLACE (代替)

FIND (查找)

1.2.Trigger(触发保持):

R_TRIG (上升沿保持)

F_TRIG (下降沿保持)

1.3.Counter(计数器):

CTU (上升沿计数)

CTD (下降沿计数)

CTUD (上升沿、下降沿计数)

1.4.Timer(计时器):

TP (触发计时器)

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 19/50

TON (高电平计时器

TOF (低电平计时器)

RTC (运行时钟计时器)

2.AnalogFilter 模拟量标定库

功能描述:对模拟量输入信号进行标定,分为单向及双向标定。

2.1.单向标定模块

单向标定模块用于把输入模拟量进行预处理,把输出量范围调整到 0~65535。

参数说明:

1)AnalogInput 输入量

数据类型: UINT

来自于传感器

2)OutPutEnable 使能开关

数据类型: BOOL

参数值为 TRUE 时,模块按当前值输出;为 FALSE 时,保持上一次输出值。

3)PAR_Full

数据类型: UINT

取值范围:0~255

此参数用于调整最大输出值,当输入最大时,使输出接近 65535,小于 65535。

4) PAR_Zero

数据类型: INT

取值范围:0~255

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 20/50

此参数用于调整零位,使输出为零。

5) PAR_DeadBand

数据类型: UINT

取值范围:0~255

设置死区,当输入进入参数设置范围,输出为零。

6)PAR_Progression

数据类型: SINT

取值范围:-100~100

设置输出缓冲曲线度,如图:

0.8 -100%
y( x )
-50%
y1( x ) 0.6 0%
y2( x , progr )

y3( x , 50 ) 0.4 50%


y3( x , 100 )

0.2 100%

0
0 0.2 0.4 0.6 0.8 1
x

7) PAR_MinErrorDifference

数据类型: UINT

取值范围:0~100

设置出错范围,当输入超出范围时,激活 ErrorHigh 或 ErrorLow 开关,并使输出为零。

8)Output 输出

数据类型: UINT

输出值范围为 0~65535

9) ErrorHigh 高位出错开关

数据类型: BOOL

输入超出 PAR_Full + PAR_MinErrorDifference 范围, ErrorHigh 为 TRUE,并把输出置

零。

10)ErrorLow 低位出错开关

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 21/50

数据类型: BOOL

输入超出 PAR_Zero–PAR_MinErrorDifference 范围, ErrorLow 为 TRUE,并把输出置零。

2.2.双向标定模块

双向标定模块用于把输入模拟量进行预处理,把输出量范围调整到-32767~32767。

参数说明:

1) AnalogInput(同上)

2) DI_JoystickDirSwitchPOS 正向微动开关

数据类型: BOOL

3) DI_JoystickDirSwitchNEG 负向微动开关

数据类型: BOOL

4)OutputEnable(同上)

5)PAR_NegFull

数据类型: UINT

取值范围:0~255

此参数用于调整负向最大输出值,使输出接近-32767,大于-32767。

6)PAR_PosFull

数据类型: UINT

取值范围:0~255

此参数用于调整正向最大输出值,使输出接近 32767,小于 32767。

7) PAR_Zero

数据类型: INT

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 22/50

取值范围:0~255

调整零位,当传感器在中位时,使输出为零。

8)PAR_DeadBand(同 2.1)

9) PAR_NegProgression(同 2.1)

10)PAR_PosProgression(同 2.1)

11)PAR_MinErrorDifference(同 2.1)

12)PAR_Faul~nDelay 过载延时

数据类型: UINT

取值范围:0~255

13) PAR_DirSwitchDiagnosticNotUse

数据类型: BOOL

此参数为 TRUE 时,微动开关无效,为 FALSE 时,微动开关有效

14) Output 输出

数据类型: INT

输出数值范围-32767~32767

15)ErrorHigh(同上)

数据类型: BOOL

当输入超出 PAR_Full +PAR_MinErrorDifference 范围时,ErrorHigh 为 TRUE,并把输出

置零。

16)ErrorLow(同上)

数据类型: BOOL

当输入超出 PAR_Zero–PAR_MinErrorDifference 范围时,ErrorHigh 为 TRUE,并把输出

置零。

17)JoystickDirSwitchPOSMissing

数据类型: BOOL

正向微动开关出错时,值为 TRUE。

18)JoystickDirSwitchNEGMissing

数据类型: BOOL

负向微动开关出错时,值为 TRUE。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 23/50

19)JoystickDirSwitchPOSAndNEGOn

数据类型: BOOL

正、负向微动开关同时为 TRUE 时,值为 TRUE。

2.3.平均值模块

参数说明:

1)Input

数据类型: UINT

2)Reset

数据类型: BOOL

值为 TRUE 时不进行平均值运算。

3)PAR_Length

数据类型: UINT

取数长度,如值为 5,则每 5 个值求一次平均值,并输到 output。

4)Output

数据类型: UINT

2.4.RC 滤波模块

滤波公式如下:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 24/50

1
y( z ) x ( z ) . 0.6 y z . 0.4

RC Filter

1.2

0.8
input/response

0.6 系列1
系列2

0.4

0.2

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
n

1)Input

数据类型: UINT

2)Output

数据类型: UINT

2.5.Cut 模块

模块的功能是把输入值进行预处理,调整斜率,消除两端非线性影响。
70000

60000

50000
r
e
s 40000
p
o in
n 30000 out
s
e 20000

10000

0
1 43 85 12 16 21 25 2 9 33 37 42 46 50 54 58 63
7 9 1 3 5 7 9 1 3 5 7 9 1
input

1) Input

数据类型: UINT

2)PAR_InputLowLimit
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 25/50

数据类型: UINT

当输入值小于 256*PAR_InputLowLimit)时,输出为零。

3)PAR_InputHighLimit

数据类型: UINT

当输入小于 65535 时,设置参数 PAR_InputHighLimit=256/INPUT。

4)Output

数据类型: UINT

2.6.HP 模块

HP 模块用于设定死区。

60000

50000

40000
response

in
30000 out

20000

10000

0
44
87
130
173
216
259
302
345
388
431
474
517
560
603
646
1

input

Out=(65535/(65535-655* PAR_CutLimit))*(INPUT-655* PAR_CutLimit)。

1)Input

数据类型: UINT

2)PAR_CutLimit 调整参数

数据类型: UINT

3)Output

数据类型: UINT

2.7.Transfer 模块

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 26/50

Transfer 模块用于设置缓冲曲线度,当 Zero 为 TRUE 时,输出为零,当 Full 为 TRUE,

而 Zero 不为零时,输出为 65535。

缓冲曲线度公式: Y2 表正向,Y3 表负向。

x 0 , 0.001 .. 1 progr 50
3
y( x ) x

y1( x ) x
progr y1( x ) . ( 100 progr )
y2( x , progr ) y ( x ).
100 100

progr y1( 1 x ) . ( 100 progr )


y3( x , progr ) 1 y( 1 x ).
100 100

0.8 -100%
y( x )
-50% 0%
y1( x ) 0.6

y2( x , progr )

y3( x , 50 ) 0.4 50%


y3( x , 100 )

0.2 100%

0
0 0.2 0.4 0.6 0.8 1
x

1)Input

数据类型: UINT

2)Zero

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 27/50

数据类型: BOOL

当 Zero 为 TRUE 时,输出为零。

3)Full

数据类型: BOOL

当 Full 为 TRUE,而 Zero 不为零时,输出为 65535。

4)OutputEnable

数据类型: BOOL

当此参数值为 TRUE 时,模块按预定算法执行;为 FALSE 时,保持上一次输出。

5)PAR_Progression 曲线度设置参数

数据类型: INT

6)Output

数据类型: UINT

2.8.Scale 模块

Scale 用于把输入为 0~65535 的值调整到-32767~32767.如下图:


PosValue= PosValue=
FALSE TRUE

65535

PAR_PosFull*256

Output Input

PAR_Zero*256

PAR_NegFull*256

1)Input

数据类型: UINT
上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 28/50

2)PAR_Zero

数据类型: INT

设置零位,当输入为 PAR_Zero * 256 时,输出为 0.

3)PAR_PosFull

数据类型: UINT

当 input 值>=PAR_PosFull * 256 时, 输出为 65535 , PosValue 为 TRUE。

4) PAR_NegFull

数据类型: UINT

当 input 值<= PAR_NegFull * 256, 输出为-65535 ,PosValue 为 FALSE。

5)Output

数据类型: UINT

6)PosValue

数据类型: BOOL

PAR_Zero * 256 > Input 值,值为 TRUE;PAR_Zero * 256 < Input 值,值为 FALSE。

3.PWMControlvoltageAmpere -funktio 库:

3.1.Motion 模块

Motion 模块主要用于控制比例阀,有两路 PWM 输出,控制信号范围-32767 ~

32767,当控制信号在 0 ~32767, PWM Up 输出,值 0~32767;当控制信号在 0 ~-32767,

PWM down 输出,值 0~-32767。由参数控制最大最小输出电流范围。

1)Control 控制信号

数据类型: INT

取值范围: -32767 ~32767。


上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 29/50

2) Feedback

数据类型: UINT;

反馈电流信号;

取值范围: 0 ~65535。

3)DI_LimitSwitchUp

数据类型: BOOL;

正向限位开关,为 TRUE 时模块输入为 PAR_EndattenuationValue*Control。

4)DI_LimitSwitchDown

数据类型: BOOL;

逆向限位开关,为 TRUE 时模块输入为 PAR_EndattenuationValue*Control。

5)Enable

数据类型: BOOL;

使能开关,为 FALSE 时, DO_SupplyVoltage 为 FALSE,输出为零。

6)PAR_DirUpAccel

数据类型: USINT;

正向缓冲加速参数;

取值范围:1 ~255。

7)PAR_DirUpDecel

数据类型: USINT

正向缓冲减速参数;

取值范围:1 ~255。

8)PAR_DirDownAccel

数据类型: USINT

逆向缓冲加速参数;

取值范围:1 ~255。

9)PAR_DirDownDecel

数据类型: USINT

逆向缓冲减速参数;

取值范围:1 ~255。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 30/50

10)PAR_DirUpMaxCurrent

数据类型: UINT

正向最大电流;

取值范围: 0 ~1000 mA。

11)PAR_DirUpMinCurrent

正向最小电流;

取值范围: 0 ~1000 mA。

12)PAR_DirDownMinCurrent

数据类型: UINT

逆向最小电流;

取值范围: 0 ~1000 mA。

13)PAR_DirDownMaxCurrent

数据类型: UINT

逆向最大电流;

取值范围: 0 ~1000 mA。

14)PAR_EndattenuationValue

数据类型: UINT

限位参数;

取值范围: 0 ~100 %

15)PAR_CoilResistance

数据类型: USINT

比例阀阻抗;

取值范围: 0 ~255 Ω

16)PAR_SupplyVoltage

数据类型: USINT

供电电压;

取值范围: 0 ~255 V

17)PAR_Faul~nDelay

数据类型: UINT

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 31/50

出现错误延迟时间;

取值范围: 0 ~ 65535 ms

18)PAR_PercentDifferenceInImpedance

数据类型: USINT

容错范围

取值范围: 0 ~ 100 %

19)DO_SupplyVoltage

数据类型: BOOL

当 Enable 为 TRUE 且 control <>0 时,为 TRUE。

20)PWM_Up

数据类型: UINT

正向输出;

取值范围: 0 ~ 32767

21)PWM_Down

数据类型: UINT

逆向输出;

取值范围: 0 ~ 32767

22)DO_DirUpValveImpedanceTooHigh

数据类型: BOOL

正向时,当 impedance 高于:

(PAR_PercentDifferenceInImpedance*Impedance)/100,

且延时到 PAR_Faul~nDelay ,该值为 TRUE。

23)DO_DirUpValveImpedanceTooLow

数据类型: BOOL

正向时,当 impedance 低于:

(PAR_PercentDifferenceInImpedance*Impedance)/100,

且延时到 PAR_Faul~nDelay ,该值为 TRUE。

24)DO_DirDownValveImpedanceTooHigh

数据类型: BOOL

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 32/50

逆向时,当 impedance 高于

(PAR_PercentDifferenceInImpedance*Impedance)/100,

且延时到 PAR_Faul~nDelay ,该值为 TRUE。

25) DO_DirDownValveImpedanceTooLow

数据类型: BOOL

逆向时,当 impedance 低于:

(PAR_PercentDifferenceInImpedance*Impedance)/100,

且延时到 PAR_Faul~nDelay ,该值为 TRUE。

Motion 块有以下子块:

3.2.Motion Volt 模块

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 33/50

该模块也用于控制比例阀,输出 PWM 信号,控制信号来自 joystickfilter 模块(-32767 ~

32767)。 输出为 0 ~ 32767。

1) Control

数据类型: INT

控制信号;

取值范围: -32767 ~ 32767

2)DI_LimitSwitchUp

数据类型: BOOL

参见 3.1。

3) DI_LimitSwitchDown

数据类型: BOOL

参见 3.1。

4) Enable

数据类型: BOOL

参见 3.1。

5) PAR_DirUpAccel

数据类型: USINT

参见 3.1;

取值范围: 1 ~ 255。

6)PAR_DirUpDecel

数据类型: USINT

参见 3.1;

取值范围: 1 ~ 255

7) PAR_DirDownAccel

数据类型: USINT

参见 3.1;

取值范围: 1 ~ 255

8) PAR_DirDownDecel

数据类型: USINT

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 34/50

参见 3.1;

取值范围: 1 ~ 255

9)PAR_DirUpMax

数据类型: UINT

正向输出最大值为 PWM 的百分比。例, 80 %.

取值范围: 0 ~ 100 %

10)PAR_DirUpMin

数据类型: UINT

正向输出最小值为 PWM 的百分比。例, 20 %.

取值范围: 0 ~ 100 %

11)PAR_DirDownMin

数据类型: UINT

逆向输出最大值为 PWM 的百分比。例, 80 %.

取值范围: 0 ~ 100 %

12)PAR_DirDownMax

数据类型: UINT

逆向输出最小值为 PWM 的百分比。例, 20 %.

取值范围: 0 ~ 100 %

13)PAR_EndattenuationValue

数据类型: UINT

参见 3.1;

取值范围: 0 ~ 100 %

14)DO_SupplyVoltage

数据类型: BOOL

参见 3.1;

15)PWM_Out

数据类型: UINT

PWM 输出;

取值范围: 0 ~ 32767

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 35/50

Motion Volt 块有以下子块:

3.3.EndAttenuation 模块

参数说明参见 3.1;

3.4.Smooth 模块

参数说明参见 3.1;

3.5.MotionControl 模块

参数说明参见 3.1;

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 36/50

3.6.CheckFault 模块

参数说明参见 3.1;

3.7.ContolMotionErrors 模块

参数说明参见 3.1;

3.8.MotionControlVolt 模块

参数说明参见 3.2;

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 37/50

第五章 CANopen 编程

一、物理层

EPEC 物理层遵循 ISO 11898 标准. 传输速率为 250 kbit/s;

二、CANopen 使用标准的 CAN 桢,有 11 位标识符, 0-8 bytes 有效数据。

ID LEN D0 D1 D2 D3 D4 D5 D6 D7

11 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit 8 bit

CAN Message = CAN Frame

三、CAN 总线

串行数据传输

CAN2.0B

CAN

CAN2.0A

CAN 分为 CAN2.0A 和 CAN2.0B 两种硬件标准,CAN2.0A 有 11 位标识符,而 CAN2.0B 有

11 位和 29 位两种标识符。

CANOpen 遵循的是 CAN2.0A 标准,有 11 位标识符。

四、主从关系
Master Slave
node node

CANopen

Slave Slave
node node

每一个 CANopen 设备都有一个接点号, CANopen 网络有一个主接点,可以有多个从接点。


上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 38/50

CANopen 主接点的作用为:

激活网络;

停止网络;

隔离错误接点

EPEC 系统的主从由 CANmoon 设置。

EPEC 系统 CANopen 主接点的作用是激活网络。

CANopen 系统所有接点由 ID 号标识。

ID 号 范围 1..127, 即 CANopen 网络最多可以有 127 不同的接点。

五、PDO 协议

PDO = Process Data Object,即 CAN 信息。

CANopen 设备之间通过 PDO 传递信息。

PDO 所传输的是工作数据。

Time PDO
PDO
接收

PDO
PDO
PDO
接收
发送
PDO
PDO
接收

PDO (tx) (Transmit PDO)发送者 (CANopen node)发送信息到 CAN 总线上,而接受者根据需

要从 CAN 总线读取信息。通讯方式为一点对多点。

六、SDO 协议

SDO = Service Data Object

SDO 所传输的是服务数据。

Time
SDO request

SDO SDO
SDO response
Client Server

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 39/50

SDO 客户机发送需求信息到 SDO 服务器, SDO 服务器发送应答信息回 SDO 客户机。通讯方

式为点对点。

有两种基本的 SDO 服务,下载 SDO (写)和上传 SDO (读). 下载 SDO 用于客户机改变服务器

里的目标值,上传 SDO 用于客户机读取服务器里的目标值.

SDO 传输可以并不只是一问一答,可以传输更多的报文,叫 SDO 块服务。

七、预定义连接设置

最基本的预定义连接设置表示系统不用另外的设置就可通讯,下表所示为 CAN 接点的报文 ID

号,由 11 位二进制数组成,高 4 位为功能代码,低 7 位为接点的 ID 号。

EPEC 中的报文 ID 表示。

node ID 1 node ID 2 Node ID 3 node ID 15

PDO1 (tx) 0x181 0x182 0x183 0x18F

PDO2 (tx) 0x281 0x282 0x283 0x28F

PDO3 (tx) 0x381 0x382 0x383 0x38F

PDO4 (tx) 0x481 0x482 0x483 0x48F

八、CANOPEN 在 EPEC 3G IEC 模块中的应用

系统设计必须对网络接点 ID 进行配置,选择一个接点作为主接点,在每个接点写 CANOPEN

的初始化代码,所有数据必须用输入输出映象区进行分配。

(1)CANopen 的初始化。

例: 网络中有 3 个 Epec 模块,一个为 2024,另外两个为 2023。第一个 2023 配置为 ID 4 作

主接点,第二个 2023 配置为 ID 7 作从接点, 2024 配置为 ID 10 作从接点。对每个接点写

CANopen 初始化代码, 使每个接点都能从其他接点接收数据信息。

Epec IEC-software 有标准的程序模块, 名为“CANopen_initialization”

下面是从接点 ID7 的 CANOPEN 初始化程序的代码,这个功能模块使 ID7 接点可以发送数据

到总线,也可以从总线上接收其他接点的数据。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 40/50

1. FUNCTION_BLOCK CANopen_initialization
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7.booting:BOOL:=TRUE;
8. END_VAR
9.
10.(* CAN initialization *)
11. IF(booting) THEN
12.CANOPEN_START_INIT(ENABLE:=TRUE);
13.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE, PDO_TYPE_SELECT:=FALSE, ID:=4);
14.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE, PDO_TYPE_SELECT:=FALSE, ID:=10);
15.CANOPEN_END_INIT(ENABLE:=TRUE);
16.booting:=FALSE;
17.END_IF

变量“booting” 使 CANOPEN 初始化程序只执行一次,

Line 12.告知系统 CANopen 初始化代码开始;

Line 13. 告知系统该模块可接受来自 ID 4 的信息;

Line 14. 告知系统该模块可接受来自 ID 10 的信息;

Line 15. 告知系统 CANopen 初始化代码结束。

一旦 CANopen 初始化生效, 模块会自动往总线发送 PDO 信息。

下面是从接点 ID10(2024)的 CANOPEN 初始化程序代码,这个功能模块使 ID10 接点可以发

送数据到总线,也可以从总线上接收其他接点的数据。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 41/50

1. FUNCTION_BLOCK CANopen_initialization
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7.booting:BOOL:=TRUE;
8. END_VAR
9.
10. (* CAN initialization *)
11. IF(booting) THEN
12.CANOPEN_START_INIT(ENABLE:=TRUE);
13.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE,ID:=4);
14.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE, ID:=7);
15.CANOPEN_END_INIT(ENABLE:=TRUE);
16.booting:=FALSE;
17. END_IF

这是从接点 ID4(2023)的 CANOPEN 初始化程序代码,这个功能模块使 ID4 接点可以发送数

据到总线,也可以从总线上接收其他接点的数据。

1. FUNCTION_BLOCK CANopen_initialization
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7.booting:BOOL:=TRUE;
8.Count: USINT;
9. END_VAR
10. (* CAN initialization *)
11. IF(booting) THEN
12.CANOPEN_START_INIT(ENABLE:=TRUE);
13.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE, ID:=7);
14.CANOPEN_ADD_NODE_RECEIVE_FROM(ENABLE:=TRUE,PDO_TYPE_SELECT:=FALSE, ID:=10);
15.CANOPEN_END_INIT(ENABLE:=TRUE);
16.booting:=FALSE;
17. END_IF
18.(*Master send start message *)
19.IF(Count>=101)THEN
20.Count:=1;
21.END_IF
22.State();
23.IF((Count=100 AND State.OPERATIONAL )OR (Count=0))THEN
24.CANOPEN_START_NODES(TRUE);
25.END_IF
26.Count:=Count+1;

18~26 行代码是专为主接点写的,目的是发送网络管理命令 STAR。启动网络接点,并每隔一

段时间刷新一次。这里仅是一个示例,可以编写不同的功能代码。

(2)发送 PDOs 到 CANopen 总线

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 42/50

在 EPEC 控制器中,发送 PDO (tx)信息到 CANopen 总线就是把数据写入 IEC 输出映象区,起

始地址为 %QW200( = %QB400)。模块的硬件会把正确的 PDO (tx) 发送到 CANopen 总线。

硬件发送 PDO (tx):每 300ms 发送一次,或当数据发生变化时发送(cyclic/acyclic)。

映象地址:

%QW200
%QW201 PDO1 (tx)
%QW202
%QW203

上表的意思是:把 %QW200-%QW203 打包为第一个 PDO1 发送到总线。

%QW204
%QW205 PDO2 (tx)
%QW206
%QW207

把%QW204-%QW207 打包为 PDO2 发送到总线。

%QW208
%QW209
PDO3 (tx)
%QW210
%QW211

把%QW208-%QW211 打包为 PDO3 发送到总线。

%QW212
%QW213
PDO4 (tx)
%QW214
%QW215

把%QW212-%QW215 打包为 PDO2 发送到总线。

例:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 43/50

1. FUNCTION_BLOCK Example
2. VAR_INPUT
3. END_VAR
4. VAR_OUTPUT
5. END_VAR
6. VAR
7. (* PDO 1 *)
8. CANO_EngineRPM AT %QW200: UINT;
9. CANO_EngineTemp AT %QW201: UINT;
10. CANO_EngineOilPres AT %QW202 :UINT;
11. CANO_EngineVoltage AT %QW203: UINT;
12.
13. (* PDO 2 *)
14. CANO_Potentiometer AT %QW204:UINT;
15. CANO_Sensor1 AT %QB410:BYTE;
16. CANO_Sensor2 AT %QB411:BYTE;
17. CANO_Switch1 AT %QX206.0:BOOL;
18. CANO_Switch2 AT %QX206.1:BOOL;
19. CANO_Switch3 AT %QX206.2:BOOL;
20.END_VAR

在此例中,所有的变量都被配置到 CANOPEN,变量名都以 CANO (CAN Output)打头,表示

变量发送到 CANOPEN,代码块 22-32 行是简单的赋值语句。

我们假定接点的 ID 号是 4,那么,这个例子的代码产生如下 PDO:

PDO 1 (tx) id=184h, 数据长度=8,

D0 = 34h, D1=8h, D2=5fh, D3=0h, D4=4ah, D5=1h, D6=1bh, D7=0h

engine rpm is in D0,D1 834h = 2100

engine temp is in D2,D3 005fh = 95

engine oil pres is in D4,D5 14ah = 330

engine voltage is in D6,D7 001bh = 27

PDO 2 (tx) id=284h, dlc=8,

D0 = 0h, D1=7dh, D2=ffh, D3=1h, D4=5h, D5=0h, D6=0h, D7=0h

potentiometer is in D0,D1 7d00h = 32000

sensor1 is in D2 ffh = 255

sensor2 is in D3 1h = 1

switch1 is in D4 bit 0 1 = TRUE

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 44/50

switch2 is in D4 bit 1 0 = FALSE

switch3 is in D4 bit 2 1 = TRUE

(3)从 CANOPEN 总线接收 PDO

送 PDOs 到 CANopen 总线

在 EPEC 控制器中,从 CANopen 总线接收 PDO (tx)信息就是从 IEC 输入映象区读取数据,

起始地址为 %IW200( =%IB400).

映象地址

映象地址根据 CANOPEN 初始化代码进行分配, 接收信息中,按优先级排列依次分配输

入映象地址,优先级最高的 ID 接点,他的 PDO 地址为%IW200- %IW215,第二个接点的 PDO

地址为 %IW216-%IW231,第三个接点的 PDO 地址为%IW232-%IW247 ,依次类推。

Mapping examples:

这是第一个接点的第一个 PDO1, %IW200->%IW203.

例:从 CANopen 总线接收 PDO(Rx)

初始化程序如下,接收来自 ID4 的数据:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 45/50

接收程序输入映象地址分配如下:

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 46/50

第六章 硬件功能库的说明

在 HW 库里,包含一些与硬件功能有关的模块,可通过这些模块对一些参数进行设置。例如:

设置 PWM 信号的频率等。

一、Configure_PI 功能模块

Configure_PI 模块用于脉冲计数,它有两个输入通道 A、B。模块如下:

当要进行单路计数时,设置 B=16#10,A 通道接脉冲信号输入通道号 n(n 为输入通道地址减

150),对应的脉冲计数值在 对应的%IWd(d 为 A 输入通道地址加 10),通道号按下表进行设

置。

Channel # Pulse count IW

IW 2023 2024 2023 2024

130 0 120

131 1 121

132 2 122

133 3 123

134 4 124

135 5 125

136 6 126

137 7 127

150 8 0 160 160

151 9 1 161 161

152 10 2 162 162

153 11 3 163 163

154 12 4 164 164

155 13 5 165 165

156 14 6 166 166

157 15 7 167

当有两路脉冲输入,而两脉冲信号的相位差为 90 度时,可进行增量式计数,A、B 分别接两

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 47/50

路脉冲的通道号,计数值在对应的输入存储器里%Iwd(d 为 A 通道对应的输入地址加 10)。

Configure PI 的输入:

1)A

数据类型: UINT

功能描述: 连接到脉冲输入信号 A.

数据范围: 0 to 65535

2)B

数据类型: UINT

功能描述: 连接到脉冲输入信号 B.

数据范围: 0 to 65535

Configure PI 输出:

1)Memory outputs

数据类型: UINT

描述:模块输出在输出存储器的 %IW 160 - 167.

数据范围: 0 to 65535

二、Reset PI 功能模块

Reset PI 功能模块如下图,功能是把脉冲输入计数器置零,软连接口 CH 接所要复位的通道

号。

如果要用 B 通道脉冲上升沿复位 A 通道的脉冲计数值(或用 A 脉冲的上升沿复位 B 通道的

计数值),则 CH 的数值如下公式所示:

CH = (Resetting channel number+1) * 16 + Channel to reset

三、Params Store 功能模块

Params strore 模块的功能是把控制器的参数值(%MWn 的设定值)闪存到控制器的相应存储

区。当 ENABLE 为 TRUE 时闪存。

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 48/50

四、Set PWM frequency 功能模块

Set PWM frequency 模块用于设置输出 PWM 信号的频率.可设频率范围从 40 到 2550 Hz。

可设置输出通道为%QW100 到%QW111 和%QW116 到%QW119。FREQ 设定值为 (实际频

率)/10。

Output Word Channel

100 to 103 0 to 3

104 to 107 4 to 7

108 to 111 8 to 11

116 to 119 16 to 19

120 to 123 20 to 23

Output Word Channel

112 12

113 13

114 14

115 15

Set PWM frequency 的输入

1)Freq

数据类型: USINT

描述: (实际频率)/10

数值范围: 4 to 255

2)Ch

数据类型: USINT

描述: Connect the channel as the Sheet 2 and 3 shows.

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 49/50

数值范围: 0 to 23

五、Temperatures 功能模块

Temperature 功能模块用于读取控制器内部温度,

Temperature 功 能 模 块 有 两 路 报 警 输 出 (TEMP 1 and TEMP 2) ; 一 路 模 拟 量 输 出

(AD_TEMP) ,可通过下述公式计算温度值。还有一路实际的温度值输出(TEMP) 。

bit_per_deg = 81,263 bit_offset = 5,177 * 103

temperature = (AD_TEMP - bit_offset) / bit_per_deg

Examble:

AD_TEMP = 8470

tempereture = (8470 - 5,177 * 103) / 81,263 = 40,519 °C

Temperatures 输出

1)Temp1

数据类型: BOOL

功能描述:当温度超过 74 °C 时为 TRUE。

2)Temp2

数据类型: BOOL

功能描述:当温度低于 -40 °C 为 TRUE。

3)AD_Temp

数据类型: UINT

功能描述: 模拟信号输出,可通过上面公式计算实际温度值;

数值范围: - 40 to + 125 °C

4)Temp

数据类型: SINT

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com
CoDeSys 编程简介 2004-10-15 Page 50/50

功能描述: 输出的实际温度值

数值范围: - 40 to + 125 °C

六、SET_AI_TYPE 模块

当模块的模拟量输入有电流输入时,需进行设置,通过设置模块的 Value 值,可设定不同的通

道为电流输入。

Value 设置不同的数值,可设置相对应的针脚为电流输入(系统默认为电压输入)。

PLC Set 1 的设置图表:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

XM3.3 I I I I I I I I I I I I I I I I

XM3.5 I I I I I I I I I I I I I I I I

XM3.7 I I I I I I I I I I I I I I I I

XM3.10 I I I I I I I I I I I I I I I I

PLC Set 2 的设置图表

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

XM1.12 I I I I I I I I I I I I I I I I

XM2.12 I I I I I I I I I I I I I I I I

XM3.5 I I I I I I I I I I I I I I I I

XM3.6 I I I I I I I I I I I I I I I I

XM3.7 I I I I I I I I I I I I I I I I

XM3.8 I I I I I I I I I I I I I I I I

XM3.13 I I I I I I I I I I I I I I I I

XM3.14 I I I I I I I I I I I I I I I I

上海派芬自动控制技术有限公司 电话:+86-(21)-55950170,55950172
上海市大连路 1546 号国中会所 A24F 传真:+86-(21)-55950171
邮编 200092 www.pal-fin.com tech@pal-fin.com

Anda mungkin juga menyukai