开始之前
数据安全: 为了尽量减少数据安全漏洞的风险,我们建议采取以下组织和技术措施:
* 避免从开放网络和互联网访问PLC和控制网络。
* 使用VPN进行远程访问。
* 安装防火墙。
* 如果要在网络上发布可视化文件,请设置密码以防止未经授权的访问。
* 使用最新版本的网关服务器和Web服务器。
安装CODESYS:
注意
安装包括开发系统,CODESYS网关和CODESYS Control Win V3,其服务可通过Windows任务栏访问。 这三个程序是模拟计算机上的控制器所必需的。
关于你的第一个项目的内容
在本教程中,您将编写一个简单的冰箱控制器。
已完成的项目RefrigeratorControl.project_archive
可以在“Projects
”目录下的CODESYS安装目录中找到。
除了您将逐步创建的示例项目之外,已完成的项目还包含完整的可视化操作和诊断。
- 与传统的冰箱一样,温度由用户通过旋转控制器来指定。
- 冰箱通过传感器确定实际温度。 如果太高,冰箱会通过可调节的延时启动压缩机。
- 压缩机冷却直至达到所需的温度,减去1度的滞后。 滞后是为了防止实际温度在温度设定点附近波动太大,这将导致压缩机不断地自行关闭和打开。
- 如果门打开,冰箱内部的灯会亮起。 如果门打开时间过长,则输出间歇性的声音信号。
- 如果压缩机在电机长时间工作的情况下仍未达到温度设定值,蜂鸣器将发出一个恒定的声音信号。
项目计划:
冷却活动在应用程序的主程序中进行控制,信号管理在另一个程序块中进行。 Standard
库中提供了所需的标准功能块。
由于在此示例项目中没有连接真正的温度传感器和实际的执行器,您还需要编写一个程序来模拟温度的上升和下降。
这将允许您在在线模式下监控冰箱控制器的操作。
必须在全局变量列表中定义要由所有功能块使用的变量。
准备
您已经安装了CODESYS开发系统并使用默认配置文件“CODESYS V<当前版本>”启动它。
开发系统的框架窗口用标准菜单栏打开; 目前还没有打开的项目。
创建项目并选择PLC设备
选择命令File ‣ New Project。
在Templates窗口中,选择Standard Project模板。
输入项目的名称和存储位置,然后单击OK按钮。
⇒打开Standard Project对话框,输入设备类型和主程序的实现语言。在Device列表中,选择条目CODESYS Control Win V3。
在PLC_PRG列表中选择条目Continuous Function Chart (CFC)
,然后单击OK按钮。
⇒项目在CODESYS框架窗口中打开。
在框架窗口的左侧的Devices视图中,您将看到“设备树”。之前选择的PLC设备以默认名称Device显示。
由您来编程的PLC应用程序的Application对象已经挂载在PLC Logic对象下。
Application已经包含PLC_PRG主程序和Library manager对象。
Library manager已经包含了IoStandard和Standard库。 IoStandard是I/O配置所必需的。 Standard库包含IEC 61131-3标准描述的所有功能和功能块。
Task Configuration对象挂载在设备数底部,包含Main task,Main task控制PLC_PRG的处理。 例如,用于可视化的对象可以稍后插入到Task Configuration下方。
除了IoStandard和Standard库之外,此示例项目还需要Util库:
双击设备树中的Library manager对象。
⇒打开Library manager编辑器。在编辑器的标题栏中,单击Add library,然后在Add library对话框中选择Util库。
单击OK按钮确认选择
⇒Util库被添加到Library manager中,库中的功能块可供您在项目中使用。
在项目中编写控制应用程序:要执行此操作,请参阅以下部分:
声明全局变量
首先,声明你希望在整个应用程序中使用的变量。 为此,请在Application下创建一个全局变量列表:
1. 选定Application并在上下文菜单中选择命令Add Object ‣ Global Variables List。将自动输入的名称GVL更改为Glob_Var并单击Add确认。
⇒对象Glob_Var出现在
Application下。 GVL编辑器在设备树的右侧打开。
出现文本视图时,它已经包含关键字
VAR_GLOBAL
和END_VAR
。在我们的例子中,通过点击编辑器右侧边的按钮激活表格视图。
⇒出现一个空行。光标在Name列中。在上下文菜单中选择命令Insert。
⇒打开输入栏。同时ScopeVAR_GLOBAL
和Data typeBOOL
自动填入该行。在字段Name中键入
rTempActual
。双击Data type列中的字段。
⇒该字段现在是可编辑的,并出现按钮。
单击按钮
,然后选择Input assistant。
⇒打开Input assistant对话框。选择数据类型REAL,然后单击OK按钮。
在Initialization列中输入一个数值,例如8.0。
以相同的方式声明以下变量。
名称 | 数据类型 | 初始值 |
---|---|---|
rTempActual |
REAL |
数字,例如8.0 |
rTempSet |
REAL |
数字,例如8.0 |
rDoorOpen |
BOOL |
FALSE |
timAlarmThreshold |
TIME |
T#30S 压缩机运行该时间后,信号响起 |
rDoorOpenThreshold |
TIME |
T#10S |