超全PLC 快捷键汇总(西门子、三菱、欧姆龙),电气人必备
编程领域的大神一般以键盘为主,而快捷键就是他们的基础技能之一。俗话说得好,兵贵神速,很多时候,快捷键的使用不光能节省一定时间,并且能让大家更熟悉电脑操作,还能让外行人顿时刮目相看~
今天小编收集了西门子和三菱PLC快捷键,大家赶紧收藏一份,以备日后学习。
A西门子快捷键
操作内容
快捷键
F1
获取帮助
F2
梯形图进入编辑模式
F3
梯形图进入运行模式
Shift+F3
梯形图进入监控模式(可在线编辑)
F4
编译程序
F5
常开接点输入
Shift+F5
并联常开接点输入
F6
常闭接点输入
Shift+F6
并联常闭接点输入
F7
线圈输出
F8
功能指令输入
F9
横线输入
Shift+F9
竖线输入
Ctrl+F10
删除竖线
Ctrl+Alt+F10
取反指令输入
delete
删除当前元件和线条
Shift+delete
删除光标所在一行的内容
insert
光标方框颜色变玫瑰红色,可以插入单个元件
Shift+insert
插入一行
ALT+F1
切换至语句表模式
ALT+1
软元件测试(监控模式下有效)
Ctrl+F
查找软元件和地址
HOME
将光标移至同行的第一列
END
将光标移至同行的最后一列
PAGE UP
垂直向上移动一个屏幕
PAGE DOWN
垂直向下移动一个屏幕
LEFT ARROW
将光标向左移动一个单元格
RIGHT ARROW
将光标向右移动一个单元格
UP ARROW
将光标向上移动一个单元格
DOWN ARROW
将光标向下移动一个单元格
CTRL + HOME
将光标移至第一个网络的第一个单元格
CTRL + END
将光标移至最后一个网络的最后一个单元格
CTRL + PAGE UP
显示下一个POU,向左移动浏览POU标记
CTRL + PAGE DOWN
显示下一个POU,向右移动浏览POU标记
TAB
选择带布尔(位值)参数指令时,TAB键移至该指令中的下一个布尔参数(仅限FBD)当您选择一个带布尔
SHIFT + PAGE UP
向上扩展网络选择
SHIFT + PAGE DOWN
向下扩展网络选择
CONTROL+SHIFT+HOME
扩展选择至第一个网络
CONTROL+ SHIFT + END
扩展选择至最后一个网络
CONTROL+ SHIFT + END
选择全部网络
CTRL+ X SHIFT +DELETE
选择网络系列时,剪切系列;当光标位于网络标题上时,剪切整个网络格内容
CTRL+ C CTRL + INSERT
选择网络系列时,复制系列;当光标位于网络标题上时,复制整个网络格内容
CTRL + V SHIFT + INSERT
选择网络系列时,粘贴系列;当光标位于网络标题上时,粘贴网络;当光在光标当前位置的前方/上方粘贴所选内容
SPACEBAR
编辑当前单元格的助记符或操作数
ENTER
编辑当前单元格的助记符或操作数
CTRL + LEFT ARROW
放下一条水平线,将光标向左移动一个单元格
CTRL + RIGHT ARROW
放下一条水平线,将光标向右移动一个单元格
CTRL + UP ARROW
放下一条垂直线,将光标向上移动一个单元格
CTRL + DOWN ARROW
放下一条垂直线,将光标向下移动一个单元格
BACKSPACE
将光标向左移动一个单元格,删除当前单元格
SHIFT + LEFT ARROW
选择当前网络,将光标向左移动一个单元格
SHIFT + RIGHT ARROW
选择当前网络,将光标向右移动一个单元格
SHIFT + HOME
选择当前网络,将光标置于当前行的第一个单元格处
SHIFT + END
选择当前网络,将光标置于当前行的最后一个单元格处
SHIFT+DOWN ARROW
从当前网络向下选择
SHIFT + UP ARROW
从当前网络向上选择
SHIFT + PAGE UP
从当前网络向上选择相邻网络的一个页面
SHIFT + PAGE DOWN
从当前网络向下选择相邻网络的一个页面顶部选择全部相邻网络
CTRL + SHIFT+HOME
从光标至POU
CTRL + SHIFT+END
从光标至POU底部选择全部相邻网络
CTRL + A
CTRL + A 选择POU中的全部网络
CONTROL+SHIFT+HOME
扩展选择至第一个网络
CONTROL+ SHIFT+END
扩展选择至最后一个网络
CTRL + F
查找字符串
CTRL + H
替换字符串
CTRL + F2
在光标的当前位置设为书签
CTRL + F3
插入网络
CTRL + F4
删除网络
SHIFT + BACKSPACE
退格
ALT + BACKSPACE
撤销
SHIFT + TAB
向后跳格
B
三菱快捷键
(操作)内容
快捷键(操作)
创建新工程文件
Ctrl + N
打开工程文件
Ctrl + O
保存工程文件
Ctrl + S
打印
Ctrl + P
撤销 梯形图剪切/粘贴
Ctrl + Z
删除选择内容并存入剪切板
Ctrl + X
复制
Ctrl + C
粘贴
Ctrl + V
显示/隐藏工程文件数据
Alt + 0
软元件检测
Alt + 1
跳转
Alt + 2
局部运行
Alt + 3
单步运行
Alt + 4
远程操作
Alt + 6
工程数据列表
Alt + 7
网络参数设置
Alt + 8
关闭有效窗口
Ctrl + F4
转移到下面的窗口
Ctrl + F6
结束应用程序
Alt + F4
插入列
Ctrl + Ins
删除列
Ctrl + Del
转换当前(编辑)程序
F4
转换当前所有(编辑)程序
Alt + Ctrl + F4
写入(运行状态)
Shift + F4
显示/隐藏注释
Ctrl + F5
转换为监控器模式/开始监控
F3
转换为监控器(写模式)
Shift + F3
开始监控(写模式)
Shift + F3
输入梯形图时移动光标.
Ctrl + Cursor key
停止监控
Alt + F3
插入行
Shift + Ins
删除行
Shift + Del
写模式
F2
读模式
Shift + F2
显示/隐藏说明
Ctrl + F7
显示/隐藏注释
Ctrl + F8
显示/隐藏机型
Alt + Ctrl + F6
开始监控.
Ctrl + F3
停止监控.
Alt + Ctrl + F3
梯形图和指令表之间转换
Alt + F1
查找触点或继电器线圈
Alt + Ctrl + F7
SFC和梯形图转换
Ctrl + J
插入行
Shift + Ins
删除行
Shift + Del
插入列
Ctrl + Ins
删除列
Ctrl + Del
转换到写模式
F2
转换到读模式
Shift + F2
转换为监控器模式/开始监控
F3
转换为监控器(写模式)
Shift + F3
开始监控(写模式)
Shift + F3
停止监控
Alt + F3
开始监控所有窗口.
Ctrl + F3
停止监控所有窗口.
Alt + Ctrl + F3
转换当前编辑模块
F4
显示/隐藏机型名
Alt + Ctrl + F6
转换当前所有编辑程序
Alt + Ctrl + F4
显示/隐藏注释
Ctrl + F5
移动 SFC 光标
Ctrl + Cursor key
查找触点或线圈
Alt + Ctrl + F7
程序表示(MELSAP-L)
Alt + Ctrl + F8
单步
F5
块开始步(有END检查)
F6
块开始步(没有END检查)
Shift + F6
跳转
F8
END 步
F7
Dummy 步
Shift + F5
传输
F5
选择分支
F6
同时分支
F7
选择集中
F8
同时集中
F9
垂直线
Shift + F9
变换属性为通常
Ctrl + 1
改变属性以储存线圈
Ctrl + 2
改变属性以储存操作
Ctrl + 3
改变属性以储存操作
Ctrl + 4
改变属性以重新复位
Ctrl + 5
垂直线(编辑线)
Alt + F5
选择分支(编辑线)
Alt + F7
同时分支(编辑线)
Alt + F8
选择集中(编辑线)
Alt + F9
同时集中(编辑线)
Alt + F10
删除行
Ctrl + F9
块暂停
F5
步暂停
F6
块运行
F8
步运行
F7
单步运行
F9
运行所有块
F10
强制块停止
Shift + F8
强制步停止
Shift + F7
强制复位停止
Shift + F9
移动到先头行
Ctrl + Home
移动到最后行
Ctrl + End
选择全部文本
Ctrl + A
重做撤消的处理
Ctrl + Y
被指定行里定位
Ctrl + J
进行查找内容
Ctrl + F
查找时的下候补查找
F5
查找时的上候补查找
Shift + F5
进行文字列替换
Ctrl + H
进行书签的设定/解除
Ctrl + F7
进行书签的下候补查找
F7
进行书签的上候补查找
Shift + F7
转换编辑中的程序
F4
转换编辑中的全部的程序
Alt + Ctrl + F4
RUN中进行加注
Shift + F4
开始全部窗口的临控
Ctrl + F3
停止全部窗口的临控
Alt + Ctrl + F3
开始临控
F3
停止临控
Alt + F3
显示标签选择画面
F11
显示函数选择对话框
Shift + F11
切换被ST的窗口上下,左右拆分的窗口
Shift + Tab
C
欧姆龙快捷键
如果记不住上面的内容,那一定要记住下面的几个常用的快捷键,平时操作时也能方便点~
创建新工程文件
Ctrl + N
打开工程文件
Ctrl + O
保存工程文件
Ctrl + S
撤销 梯形图剪切/粘贴
Ctrl + Z
删除选择内容并存入剪切板
Ctrl + X
复制
Ctrl + C
粘贴
Ctrl + V
显示/隐藏工程文件数据
Alt + 0
软元件检测
Alt + 1
常开
F5
常闭
F6
编程要以将要使用的PLC为目标。PLC的类型可以随时改变,一旦改变,程序也跟着改变。按照不成文的约定,在开始的时候最好设置好正确的PLC类型。
1.开始一个新的工程
按照以下步骤来建立一个新的工程:
(1)选择工具栏中的新建按钮。
(2)定义工程的设备条目。
(3)保存工程
当一个新的PLC被添加到工程中的时候,将创建以下空表:
1)空的本地符号表;2)全局符号表;3)IO表;4)PLC内存数据;5)PLC设置数据。2.编写一个梯形图程序
下面以一个交通灯次序控制为例说明,该交通灯次序是一个标准的英国交通灯次序,顺序如下:只有红灯→红灯和和黄灯同时→只有绿灯→只有黄灯。
编写一个梯形图程序,包括: 生成符号和地址、创建一个梯形图程序、编译程序。
(1)按照以下步骤来生成符号
1)单击图表窗口,在工具栏中选择查看本地符号按钮。如下图 2)从工具栏选择新建符号按钮,符号插入对话框将被显示。
3)在名称栏中键入‘AmberLight’.4)在地址栏中键入’10.01’5)将数据类型栏设置为‘BOOL’ ,表示一个位(二进制)值6)在注释栏中输入‘准备通行/停止’7)选择确定按钮以继续进行对下表的每一项重复以上操作
名称
地址
数据类型
注释
RedLight
10.00
BOOL
停止
GreenLight
10.02
BOOL
通行
RedLightTimer
1
NUMBER
红灯周期
AmberLightTimer
2
NUMBER
黄灯周期
GreenLightTimer
3
NUMBER
绿灯周期
AmberOnlyTimer
4
NUMBER
黄灯周期
RedTimerDone
T0001
BOOL
AmberTimerDone
T0002
BOOL
GreenTimerDone
T0003
BOOL
AmberOnlyTimerDone
T0004
BOOL
TimeInterval
48
NUMBER
次序的快慢(滴答数)
在CX-Programmer中使用标准地址格式是很重要的。按照其定义类型,一个地址有两部分,一个通道和一个位号码。
(2)建立一个梯形图程序
按照以下步骤来生成一个梯形图程序
1)确认在图表工作区中显示梯形图程序。
2)用属性框来给梯级一个注释(将光标移动到梯级,通过内容菜单来使用属性框功能)
3)梯级注释占位符可以被插入到编译代码中(如果PLC的包括注释 指令属性被设置),注释也可以被保存为一个文件或者文件卡片。所有的注释都被保存在工程文件中。
4)工具栏中的新建常闭接触点按钮,在梯级的开始放置一个常闭接触点,然后点击左上方的格子。新建的常闭接触点将被显示。
5)在名称或值列表栏中选择‘AmberOnlyTimerDone’,然后选择确定按钮。注:现在沿着梯级将显示一个红色的记号,这表明这个梯级没有被完成,出现了一个错误。
6)在工具栏选择新建PLC指令按钮,并点击接触点的旁边,这样就添加一条新的指令。新指令对话框将被显示。
7)输入指令‘TIM’ ,在操作数栏中输入两个操作数‘RedLightTimer’和 ‘TimeInterval’
注:符号 ‘RedLightTimer’ 的值用作操作数-数值“1”。在CX-Programmer 中,必需使用NUMBER类型来作为TIM/CNT指令的第一个操作数。不允许使用计时器/计数器地址(例如:将不允许T001)。
8)选择确定按钮来接受刚才在新指令对话框中所做的设置。
注:在梯级的边缘不再有红色的记号。在这个梯级里面已经没有错误了。
9)使用属性框来给这个指令一个注释(将光标放在指令的标题上,激活属性框)。输入文本“只有红灯”然后回车。
10)在下一梯级的开端放置一个新的接触点(如同上述,或者将光标移到这个梯级,使用输入/接触点/普通 打开菜单命令来或者使用快捷键,通常是“C”来进行这一操作)新接触点对话框将被显示。
11)从名称或者地址栏中选择‘RedTimerDone’,然后选择确定按钮。
12)在接触点旁边插入一条新的指令,显示新建指令对话框。 (如同上述,或者使用插入/指令菜单命令,或者使用快捷键-通常是‘I’来执行)。在指令编辑框中输入指令 ‘TIM’,在操作数栏输入两个操作数‘AmberLightTimer’ 和‘TimeInterval’ 。
13)选择确定按钮,接受刚才的设置。.
14)给这个指令一个注释“红灯和黄灯一同”。
15)在下一个梯级插入新接触点,显示新接触点对话框
16)在名称和内容栏选择‘AmberTimerDone’ ,选择确定按钮
17)在接触点旁边插入一条指令,显示新建指令对话框。输入指令 ‘TIM’,在操作数栏里面输入两个操作数 ‘GreenLightTimer’和 ‘TimeInterval’。
18)选择确定按钮,接受刚才的设置。.
19)给这个指令一个注释“只有绿灯”。
20)在下一个梯级插入新接触点,显示新接触点对话框。
21)在名称和内容栏选择‘GreenTimerDone’ ,选择确定按钮。
22)在接触点旁边插入一条指令,显示新建指令对话框。输入指令 ‘TIM’,在操作数栏里面输入两个操作数AmberOnlyTimer’ 和 ‘TimeInterval’ 。
23)选择确定按钮,接受刚才的设置。
24)给这个指令一个注释“只有黄灯”。
梯形图程序类似下图(取决于选择的显示参数)。
按照以下步骤将每一个交通灯的输出放置到程序中去。
1)确认在图表工作区中显示梯形图程序。
2)在下一个梯级的开始添加一个接触点,把它分配给符号 ‘RedTimerDone’。 (在新建接触点对话框的名称和地址栏中选择符号的名称)。
3)红灯和黄灯计时器的右边添加一个常闭接触点,把它分配给符号 ‘GreenTimerDone’。
4)在工具栏中选择新建线圈按钮,在绿灯计时器的旁边新建一个线圈。在名称和地址栏中选择 ‘RedLight’,然后选择确定按钮。
5)在方的另一个梯级中,在左边添加一个接触点,把它分配给符号 ‘AmberTimerDone’。
6)在这个接触点的右边,放置一个常闭接触点,把它分配给符号 ‘GreenTimerDone’。
7)在第二个接触点的右方,放置一个线圈,把其分配给符号 ‘RedLight’。
8)在下一个梯级,在左边放置一个接触点,把其分配给符号 ‘AmberTimerDone’。
9)在这个接触点右方,放置一个常闭接触点,并把其分配给符号 ‘GreenTimerDone’。
10)在第二个接触点的右方,放置一个线圈,把其分配给符号‘AmberLight’。
11)当选择的格子在梯级的右边时,回车。这将建立一个新行。
12)在左边的 ‘AmberTimerDone’ 接触点下方,放置一个新的常闭接触点, (但是还在同一个梯级里面)把它分配给符号 ‘RedTimerDone’。
13)从工具栏中选择新建垂直线按钮,新建一个垂直线,其从接触点 ‘GreenTimerDone’ 到线圈‘AmberLight’。要把它和‘RedTimerDone’连接,可以在工具栏中选择新建水平线按钮,添加一条水平线,并同垂直线连接。
14)14)下一个梯级的开头放置一个接触点,通过新建接触点对话框把其分配给符号‘GreenTimerDone’。
15)15)在接触点旁边放置一个线圈,把其分配给符号 ‘GreenLight’。
16)16)通过新建指令对话框,在下一个梯级里面添加指令END’。
梯形图的输出梯级如下图所示。
使用下面的步骤来检查梯形图程序:
1)确认在图表工作区中显示梯形图程序。
2)在工具栏选择查看本地符号视图 按钮,切换到符号表。 从工具栏选择 显示地址引用按钮在激活地址引用工具。
3)通过选择每一个符号,并且显示地址引用工具或者在图表中移动光标来检查其在程序中的用法。
也可以在助记符视图中查看梯形图视图。可以在助记符视图或者在梯形图编辑器中显示一个梯级来输入块程序。
在工具栏中选择助记符视图按钮来激活助记符视图。要在梯形图编辑器中直接输入助记符指令,对相关梯级选择以语句方式查看。
(3)编译程序
无论是在线程序还是离线程序,在其生成和编辑过程中不断被检验。在梯形图中,程序错误以红线出现。如果梯级中出现一个错误,在梯形图梯级的右边将会出现一道红线。例如在图表窗口已经放置了一个元素,但是并没有分配符号和地址的情况下,这种情形就会出现。
按照以下步骤来编译程序:
列出程序中所有的错误,按下鼠标右键并在工具栏中选择编译程序按钮。输出(例如编译进程或者错误细目)将显示在输出窗口的编译标签下面。
3.把程序下载到PLC
按照以下步骤来将程序下载到PLC:
1)选择工具栏中的保存工程按钮,保存当前的工程。如果在此以前还未保存工程,那么就会显示保存CX-Programmer 文件对话框。在文件名栏输入文件名称,然后选择保存按钮,完成保存操作。
2)选择工具栏中的在线工作按钮,与PLC进行连接。将出现一个确认对话框,选择确认按钮。由于在线时一般不允许编辑,所以程序变成灰色。
3) 3) 选择工程工作区里面的程序对象。
4) 4) 选择工具栏里面的程序模式按钮,把PLC的操作模式设为编程。如果未作这一步,那么 CX-Programmer 将自动把PLC设置成此模式。
5) 5) 选择工具栏上面的下载按钮,将显示下载选项对话框。
6) 6) 设置程序栏,并单击确认按钮。
4.从PLC传送程序
按照下列步骤将PLC程序上传。
1)选择工程工作区中的PLC对象。
2)选择工具栏中的上载按钮。工程树中的第一个程序将被编译。如果PLC是离线状态,那么将显示确认对话框,选择确认按钮,与PLC连接。将显示上载对话框。
3)设置程序栏,然后选择确认按钮。
5.工程程序和PLC程序的比较
按照以下步骤来比较工程程序和PLC程序。
1)选择工程工作区中的PLC对象。
2)选择工具栏中的与PLC进行比较按钮,将显示比较选项对话框。
3)设置程序栏,选择确认按钮。比较对话框将被显示。
6.在执行的时候监视程序
一旦程序被下载,就可以在图表工作区中对其运行进行监视(以模拟显示的方式)。按照以下步骤来监视程序。
1)选择工程工作区中的PLC 对象
2)择工程工具栏中的切换PLC监视按钮。
3)程序执行时,可以监视梯形图中的数据和控制流,例如,连接的选择和数值的增加。
7.在线编辑
虽然下载的程序已经变成灰色以防止被直接编辑,但是还是可以选择在线编辑特性来修改梯形图程序。当使用在线编辑功能时,通常使PLC运行在“监视”模式下面。在“运行”模式下面进行在线编辑是不可能的。使用以下步骤进行在线编辑。
1)拖动鼠标,选择要编辑的梯级。
2)在工具栏中选择与PLC进行比较按钮,以确认编辑区域的内容和PLC内的相同。
3)在工具栏中选择在线编辑梯级按钮。梯级的背景将改变,表明其现在已经是一个可编辑区。此区域以外的梯级不能被改变,但是可以把这些梯级里面的元素复制到可编辑梯级中去。
4)编辑梯级。
5)当对结果满意时,在工具栏中选择传送在线编辑修改按钮,所编辑的内容将被检查并且被传送到PLC。.
6)一旦这些改变被传送到PLC,编辑区域再次变成只读。选择工具栏中的取消在线编辑按钮,可以取消在确认改变之前所做的任何在线编辑。
来源:网络,版权归原作者所有,侵删
对于PLC编程,哪种IEC 61131-3编程语言最适合?
图片来源:ControlSphere Engineering
作者 | Gary L. Pratt
“
有这么多可编程逻辑控制器(PLC)编程语言和标准可供选择,对于自动化和控制应用而言,最适合的选择是什么?
”
可编程逻辑控制器(PLC)有很多编程语言可供选择。有种说法,标准的伟大之处在于有很多选择!尽管这很讽刺,但在IEC 61131-3编程语言中,有多种语言标准可供选择确实是一个优势。
在参加我的培训班时,很多学生抱着这样一种心态:选择最适合自己的语言,然后专门学习该语言。上课伊始,他们经常会问我会推荐适用哪种语言。或者,“最好的语言是哪个?”
我没有回答,问他们一个问题:“在阿拉伯数字中,哪个数字最好?”或“英语中,哪个词最好?” 再比如:办公室软件中,哪个工具最好?是文档编辑器、演示文稿编辑器,还是电子表格编辑器?虽然可以使用文档编辑器创建演示文稿和电子表格,但这是正确的方法吗?
使用一种工具实现多种目的,需要学习各种技巧,这是否值得付出?仅学习该工具对工作有用的主要功能,是不是更有效?与办公软件一样,为应用选择最佳编程语言是最有效的,可以避免很多麻烦。当使用的IEC 61131-3编程语言能够充分发挥其语言的优势时,PLC的编程和维护功能就会得到加强。
▎ 图1:IEC 61131-3编程语言提供了适合特定需求的语言。图片来源:ControlSphere Engineering
梯形图编程
梯形图(LD)编程的历史,可以追溯到大约100年前的继电器梯形逻辑(RLL),它主要用于描述电气元件系统(如继电器、计时器和电动机)。在自动化时代初期PLC逐步替换继电器和计时器时,创建一种用户熟悉并与被替换的工具相似的编程语言非常重要。
不幸的是,控制器变得越来越强大,能够实现的功能也已经远远超过继电器和计时器,LD语言被用于各种新的场景,而这并不是LD所擅长的,因此效果也不是特别理想。
PLC供应商提供新的、更适合PLC和可编程自动化控制器(PAC)应用的语言的速度比较缓慢,使这种情况进一步恶化。对于源自北美的控制器而言尤其如此,这可以解释在全球范围内,LD持久受欢迎的程度为什么会有所差异。
LD编程的优势是什么?为什么它能持久受欢迎?关键就是图形化。而通常来说工程师是更倾向于图形化思维的。
起初,大多数LD编程的替代方法都是基于文本的语言,这些语言与工程师的图形化思维不会产生共鸣,其结果就是不愿从LD转向其它语言。幸运的是,这种情况正在发生变化。
LD仍然是一门伟大的语言,它的初衷是执行复杂的布尔逻辑。在这个领域内,LD逻辑易于设计且易于调试。要确定为什么结果与预期不符,有多容易?在LD语言中,只需要观察蓝色实心触点的路径在何处中断就可以快速获得答案。
▎ 图 2 :该图比较了在 Codesys 中实现复杂布 尔逻辑的不同语言
顺序功能图编程
顺序功能图(SFC)是一种图形语言,非常适合表示状态机(state machine),并且像LD语言一样,它吸引了工程师的图形化思维天性。
状态机的历史可以追溯到很多年前,但是直到最近才被用于工业编程。状态机是表示系统行为的一种非常强大的方法,可用于表达行为取决于过去历史记录的系统逻辑,例如:
1.设置线圈或复位线圈;
2.封装逻辑(布尔反馈);
3.由代码设置的内部标志,用于决定未来的行为。
实际上,即使是简单的TON On-Timer和R-Trig one-shot都是状态机。它们的下一个行为取决于先前的输入和行为。与其它编码技术相比,状态机具有许多优势:
1.它们易于设计,因为它清楚地描述了系统可能的状态,系统如何在这些状态之间转换,系统在这些状态下应采取的行动。
2.在运行时,可以很容易地确定系统处于什么状态,在该状态下正在做什么,以及在什么条件下系统会切换到下一个状态(或者过程中出了什么问题,导致无法切换到下一个状态)。
3.促进构思周密且组织良好的设计。这样可以确保所有可能的事件都已得到妥善处理(就不会有人半夜三更把你从床上叫起来,去修复无法正确处理异常工况的代码)。
4.易于确定是否已经测试了所有可能事件。只需打印出SFC,并在执检查时划掉每个状态和切换条件即可。完成所有工作后,测试就完成了(程序员的置信度为100%)。
▎ 图3:该图显示了顺序功能图的编程组件
如何实现状态机?
几乎任何语言都可以实现状态机,但它们都需要特定的编码技术,包括步(step)、转换(transition)、分支/跳转(branch/jump)和动作(action)。
步描述了系统可以驻留的状态;转换指示系统何时应从上一步转移至下一步;分支和跳转指示下一步应该是什么;动作指定在该步期间(进入或退出该步)应执行的操作。
由于其图形化属性和工作的专业性,SFC语言是状态机最自然的选择。对于那些需求异常复杂或要求特别灵活的系统,状态机也可以用基于文本的语言来实现。对于只能使用LD的企业,状态机甚至可以在LD中实现,方法是为每个状态使用一个线圈,转移逻辑为每个线圈通电/断电,将系统从一个状态转移到下一个状态,以及利用使用状态线圈的独立逻辑来执行动作。
一些供应商还可以用统一建模语言(UML)来实现状态图,作为SFC的更强大、更灵活的替代方法,但这需要更长的学习曲线,而且在工业控制领域中的接受度有限。
对于状态机,语言的选择是次要的,所用技术的选择更重要。在SFC中,该语言强制使用状态机技术。在其它语言中,使用的技术取决于工程师制定的规则。
▎ 图4:基于Codesys连续功能图语言,展示了一个基于块的编程设计 示例
功能块图编程
功能块图(FBD)是一种图形语言,符合工程师的图形化思维。来自Codesys(以前被称为3S-Smart Software Solutions)的集成开发环境提供了两种FBD,即传统的IEC 61131-3 FBD和类似但更灵活的连续功能块图(CFC),CFC还没有正式成为IEC 61131-3的一部分。CFC是FBD的超集,具有两大优势:
1.基于块的功能编程(执行布尔和数学运算);
2.分层设计(调用其它功能和功能块)。
1 基于块的编程
基于块的设计由预定义功能组件组成,这些组件连接在一起执行布尔逻辑、数学计算或二者兼而有之。当输出是输入的函数时(换句话说,当没有状态变量,例如布尔反馈、设置/复位线圈或标志时),CFC块编程非常出色。当同时使用无状态功能和基于状态的功能时,请结合使用CFC和SFC。
因为连接性是用功能块之间的线来表示的,所以很容易理解信息流以及信息是如何沿着其路径进行修改的。如果功能开始变得复杂,则应将其分为较小的、更易于管理的子块。如果块之间存在大量连接,则可以将这些线连接至数据结构类型的引脚。
结构引脚(structure pin)具有3个优点:
1.在层次化结构设计中,每个层次都消除了不必要的细节,更清晰易于理解;
2.保持较小的功能块,可以在一页上查看整个信息流;
3.允许信息流向上游和下游,以进一步减少不必要的细节。
对于以前采用LD实施基于块或分层功能的PLC程序员来讲,CFC提供了一种更为简洁和灵活的方法。CFC的开发速度更快,而且对于将来负责维护或改进代码的工程师来说,也更容易理解。
▎ 图5:结构引脚可以减少不必要的细节和混乱,从而增强了图表的可 读性。
2 分层设计
分层设计是一种从很多简单的构建块层层设计的实践。与传统的扁平化设计相比,分层设计具有许多优点:
1.定制;
2.创建;
3.测试与完善;
4.理解和维护;
5.易于复用。
构建块技术支持并鼓励在层次结构的每个级别上,展现同等程度的细节,这就使块技术更易于设计和理解。这样,在较高层次的设计中,不必因为展现细节而被弄得杂乱无章,这些细节只在较低层的设计中很重要。在层次结构的每个级别上,分层CFC设计应都具有统一的细节展示。
使用LD作为构建块语言的传统方法会存在2个弊端:
1.信息的低密度导致LD设计可能会分布到数10页上,很难或不可能看到和理解全局;
2.不同层次的细节混杂在同一层次上会十分混乱,这使设计难以理解和维护。
而使用结构化文本的CFC分层设计可以解决这两个问题,同时保持了LD的图形特性。这是个两全其美的解决方案。
分层设计是面向对象的工业编程(OOIP)的关键功能。在部署和配置用户自定义的功能块以后,CFC编程开始与分布式控制系统(DCS)的编程/组态有点类似,但使用IEC 61131-3程序员可以控制底层的块。如果某个块需要较小的改进,程序员就可以执行此操作,而无需费时费力的请DCS供应商介入。
完整的分层PLC设计,可以看作是一棵由分层CFC构成主干和分支的树。基于块的CFC、SFC、LD和ST填充树叶所处位置的详细功能设计。IEC 61131-3语言共同构成了一个团队,该团队比其各个部分的功能更强大。
▎ 图6:此处的分层设计是在连续功能图编程中实现的。
结构化文本编程
尽管LD、SFC和FBD/CFC语言可以出色的完成其任务,但有些运算并不适合使用图形化语言。
一些支持使用结构化文本(ST)语言编程的运算包括:
1.迭代运算,例如For、While和Repeat;
2.复杂条件和选择,例如IF-THEN和CASE;
3.位运算,例如按位与、移位、旋转;
4.文本字符串运算;
5.具有特殊要求或特别复杂的状态机;
6.纯粹的面向对象编程(调用方法,设置属性等)。
有许多很好的教程,可指导工程师从其它基于文本的语言过渡到ST。对于那些完全不熟悉基于文本的语言的人来说,Visual Basic教程是一个很好的起点。尽管结构化文本基于Pascal编程语言,但它与VB有非常相似,因此可以参考应用更广泛的VB教程。
使用最合适的语言编程
要创建有效的工业控制程序,掌握合适的编程语言并知道如何有效使用这些语言非常重要。有很多语言可供PLC选择,IEC 61131-3编程语言标准也提供了多种选择。充分利用每种语言的优势效率会更高,而不是学习一种语言的各种技巧和变通方法来使其适用于所有应用。程序员应为应用选择最佳语言。
相关问答
PLC如何驱动打印机-150****9383的回答-懂得
Windows下的打印机驱动程序通常分为GDI打印机驱动程序、PCL打印机驱动程序和PostScript(PS)打印机驱动程序。GDI驱动程序:通常GDI打印机驱动程序生...
求助怎么把PLC中的数据导入电脑的Excel表格中-ZOL问答
可以这样做,PLC和上位机自由口通讯,PLC通过COM口把需要保存的数据发给PC,PC再把数据保存为EXCEL格式的文件到硬盘。有用(0)回复jiangningpi20PLC要支持导出...
电气版cad画plc图如何画的?
要在电气版CAD中绘制PLC图,首先需要了解PLC的工作原理和连接方式。然后,使用CAD软件中的电气符号库选择合适的元件符号,如PLC、传感器、执行器等。根据PLC的...
麻烦问一下!!台达触摸屏怎样触发打印功能?
[回答]台达PLC与台达触摸屏有专门的通信线卖,你可以到台达的代理或网上购买。如果要自己制作,可以利用触摸屏的COM2口,台达PLC的COM2口,用九针插头连接触...
三菱plc编程过程中的快捷键以及F1-F10这些键都有哪些功能?-...
GXDeveloper中的,创建Ctrl+N打开工程文件Ctrl+O保存工程文件Ctrl+S打印Ctrl+P撤图剪切/粘贴Ctrl+Z删除选择内容并存入剪切板Ctrl+X复制Ctrl+C粘贴G...
台达触摸屏和plc通讯-ZOL问答
1)plc编程软件通信设置里面双击directlinkusb,挑钩现在plc都有穿透功能,plc跟屏用线连接起来,usb插在屏上面,就可以通过屏穿透屏将plc程序传送到plc里面...
请提供西门子PLC说明书型号:S7-200CPU224AC/DC/RLY
3西门子plc200价格了解的说下这只是一个系列啦,这个系列里不同型号,不同配置...可编程控制器是由现代化生产的需要而产生的,可编程序控制器的分西门子PLCS7-20...
大厂电气工程师plc编程命名..._电气工程师_帮考网
1.控制逻辑命名:根据控制逻辑的实际作用,可命名为“启动控制逻辑”、“停止控制逻辑”、“紧急停止控制逻辑”等。2.输入输出模块命名:根据输入输...
plc可以控制最常用的哪些东西?
1、开关量的逻辑控制这是PLC最基本、最广泛的应用领域,它取代传统的继电器电路,实现逻辑控制、顺序控制,既可用于单台设备的控制,也可用于多机群控及自动化流...
plc面试电气工程师问什么..._电气工程师_帮考网
1.你的电气工程背景和相关经验是什么?2.你对PLC的了解程度如何?有哪些常见的PLC品牌?3.你能否解释PLC的工作原理和应用场景?4.你有使用过哪些PL...