S7200 SMART从零到精通教程6___PLC编程基础知识
从这节开始我将讲解S7200 SMART PLC的编程基础知识,各种指令等
1·数据的存储类型
数制(1)二进制数的1位(bit)只能取0和1两个不同的值,可以用来表示开关量的两种不同的状态,例如触点的断开和接通,线圈的通电和断电,灯的亮和不亮等。2#1001110110011101就是16位二进制常数。它的基数2,进位规则“逢二进一”
(2)十进制数是用0~9这10个数码表示的数。它的基数10,进位规则“逢十进一”
(3)十六进制的十六个数字是0~9和A B C D E F(对应十进制中的10~15),每个十六进制数字可以用4位二进制表示,如16#A用二进制表示为2#1010。它的基数16,进位规则“逢十六进一”
(4)BCD码用4位二进制数(或1位16进制数)表示一位十进制数。例如十进制数366转换成十六进制BCD码是W#16#0366。而十进制数366转换成十六进制数是W#16#16E。 BCD码的最高4位二进制数用来表示符号,16位BCD码字的范围是-999~+999,32位BCD码字的范围是-999999~+999999,不同数制的数的表示方法不同:
不同数制的数的表示方法
下面重点讲解一下数制的转换:
二进制数转十进制数:从二进制的地位到高位(即右到左)依次乘以2的0~n次方的和 。例如:2#1011 0111转换成十进制数:
2#1011 0111=1×2^7 +0×2^6+1×2^5+1×2^4+0×2^3+1×2^2+1×2^1+1×2^0=183
十进制数转二进制数:将一个十进制数反复除以2取余数,除到商等于0为止。 例如:205转换成二进制数等于2#1100 1101,转换过程如下:
205/2=102......1(二进制的最低位)
102/2=51......0
51/2=25.......1
25/2=12......1
12/2=6......0
6/2=3......0
3/2=1......1
1/2=0......1(二进制的最高位)
二进制数转十六进制数:将一个二进制数从最低位开始以4位分一组,最左边的不够四位的补0,从每一组的二进制数的最低位向最高位依次乘以2的n次方之和。 例如:2#110 1101转换成十六进制数如下:2#110 1101可以写成2#0110 1101
0×2^3+1×2^2+1×2^1+0×2^0 (0110) 1×2^3+1×2^2+0×2^1+1×2^0(1101) =16#6D
十六进制数转二进制数:将十六进制数的每一位转换成四位二进制数,不足四位的在左边补0,组合起来即可得到二进制数。 例如:16#3E=2#0011 1110
十六进制数转十进制数:将一个十六进制数的最低位到最高位(即右到左)依次乘以16的n次方之和。 例如:16#29FE=2×16^3+9×16^2+15×16^1+14×16^0=10750
十进制数转十六进制数:将一个十进制数整数反复除以16取余数,除到商等于0为止。 例如:276转换成十六进制数等于16#114.
276/16=17......4(十六进制的最低位)
17/16=1......1
1/16=0......1(十六进制的最高位)
数据的长度和类型不同长度的数据表示的十进制数取值范围
常数:表示方法如二进制,十进制,十六进制等。在表示二进制数和十六进制数时要在前面加"2#","16#"。 格式如下:2#1101,16#45DF,ASCII:"HELLOW",实数:-3.1415926,十进制数:1258
2·元件的功能与地址分配
输入过程映像存储器I输入过程映像存储器与输入端相连,专门接收PLC外部开关信号的元件。
位格式:I【字节地址】·【位地址】,如I0.0
字节,字,双字格式:I 【长度】·【起始字节地址】,如IB0,IW0,ID0
输出过程映像存储器Q输出过程映像存储器是将PLC内部信号输出传送到外部负载(用户输出设备)。
位格式:Q【字节地址】·【位地址】,如Q0.0
字节,字,双字格式:Q【长度】·【起始字节地址】,如QB0,QW0,QD0
变量存储器V用来存储程序执行过程中控制逻辑操作的中间结果和保存与工序或任务相关的其它数据,变量存储器不能直接驱动外部负载。
位格式:V【字节地址】·【位地址】,如V1.0
字节,字,双字格式:V【长度】·【起始字节地址】,如VB0,VW2,VD100
位存储器M位存储器是PLC中数量最多的一种继电器。不能直接驱动外部负载。
位格式:M【字节地址】·【位地址】,如M1.0
字节,字,双字格式:M【长度】·【起始字节地址】,如MB0,MW2,MD100
特殊存储器SM 局部存储器L 模拟量输入映像存储器AI 模拟量输出映像存储器AQ 定时器T 计数存储器C 高速计数器HC 累加器AC 顺序继电器存储S由于此节内容较多,下一节继续讲解······
下一讲S7200 SMART从零到精通教程7,请继续关注涛哥乡村行,续······点赞关注哦!
如有不明白之处可私信我,我会尽快回复!
罗克韦尔(AB)PLC讲解,4、RS5000、Studio5000编写梯形图完整版
创建了任务、程序、例程以及所需标签后,我们需要编写工作站(冲压、卷边和焊接)、 传送带和站调度梯形图逻辑程序。RSLogix5000 编程软件支持梯形图、功能块、顺序功能图、结构文本等编程语言,用户可以根据自己的需求灵活选择编程语言。对于本例,我们 选择梯形图编程语言。
本实验主题:
1. 输入梯级和指令
2. 使用快捷键输入指令和梯级元素
3. 输入分支
4. 掌握常用指令,如输入、输出、定时器、跳转子程序等。
5. 在多个项目间复制梯级
6. 校验梯形图逻辑
实验步骤:
1. 双击桌面上图标,打开 RSLogix5000 软件。
2. 单击 File->Open,选择上一实验所创建项目 P1 并打开。
3. 输入梯形图逻辑。右键单击 Assembly->Program_1_Press->Routine_Dispatch,从弹出菜单中选择 Open(打开),如图 2-21 所示。
4.在弹出的编程窗口中编写调度例程,如图 2-22 所示。
注意出现在右边窗口的梯级,此梯级处于编辑(Edit)模式,在梯级的左边标着“e”。现在可以添加指令和梯级了。
5. Routine_Dispatch 主例程的作用是初始化子例程、调度子例程。初始化子程序将
Station_1_Press 例程中 StationTimer 的计时累加值清零。如果标签 Call_Program_Value(调用程序号)由 Station_Dispatcher 例程设定为 1,则跳转到子例程 Station_1_Press 中。
首先,输入一个相等(EQU)指令(属于 Compare 类),单击 EQU,它就出现在梯级
的相应位置,如图 2-23 所示。
注意:您也可以将其拖到梯级上,或者双击“e”标记,然后在弹出的窗口中输入 EQU, 或者按下Insert 键,输入 EQU。
无论您采用哪种方法,现在都能够获得EQU 指令,出现如图2-24 所示画面:
6. 现在您需要在 EQU 指令的 SourceA 和 SourceB 处输入正确的标签地址。所有需要用到的标签我们在上一实验中都已经创建好了,这时,我们仅需双击问号,然后单击向下 箭头,如图 2-25 所示。
您可以在 Controller Scoped Tags 和 Program Scoped Tags 之间切换画面。回顾上次实验
内容,因为 Call_Program_Value 会在多个程序中使用,故作用域为 Controller Scoped Tags。
需要注意的是,如果一个标签被定义为 Program Scoped Tags,那么,只有属于这个Program 的 Routine 才可以对此变量进行读/写操作。
7. 双击 SourceB,直接输入立即数 1。如果不采用立即数方式,而采用标签的方式,
那么您可以右键单击 Source B 的问号,如图 2-26 所示。
8.弹出如图 2-27 所示画面。为了与本实验保持一致,请采用下例中的名称,并配置成相应属性。或者,直接使用立即数 1。
9. 按照上述方法,为 Assembly->Program_1_Press->Routine_Dispatch 例程创建如图2-28 所示梯形图逻辑,添加清除定时累加值所需指令 ONS 和RES。按下Insert 键,直接输入指令名称。由于本次实验中用到了的指令较多,不能一一介绍,对于不清楚的指令,您可以直接与指导老师沟通,或单击 Help->Instruction Help(指令帮助),查阅相关指令的帮助。
10. 创建梯形图分支。在 Routine_Dispatch 例程中,对 Station_1_Press 例程中定时器累加值清零后,梯级需要跳转到 Station_1_Press,开始执行压缩机部件的冲压工序。由于计时器累加值清零程序的输入条件与跳转指令相同,故我们需要将两个输出并联,但一定 要注意,输出并联梯级的顺序不能交换。
单击EQU 梯级指令,然后在工具条中选择 Branch,如图 2-29 所示
单击Branch,然后将其一端拖拽到所需位置,释放鼠标左键,如图 2-30 所示:
然后,添加跳转到子例程指令 JSR。按下 Insert 键,直接输入指令名称。对于不清楚
的指令,请单击 Help->Instruction Help(指令帮助),查阅相关指令的帮助,如图 2-31 所示。
11. 最终,创建完成的 Assembly->Program_1_Press->Routine_Dispatch 例程如图 2-32
所示。
12. 将 Assembly->Program_1_Press->Routine_Dispatch 中 的 梯形图 逻辑 复 制到
Assembly->Program_2_Stake->Routine_Dispatch。
13. 将该梯形图逻辑粘贴到 Assembly->Program_2_Stake->Routine_Dispatch 例程后, 修改以下参数,如图 2-33 所示。
- 将 EQU 指令中 SourceB 参数改为 2。
- 将 JSR 指令中Routine Name 参数改为 Station_2_Stake。
14. 将 Assembly->Program_1_Press->Routine_Dispatch 例程中梯形图逻辑复制到
Assembly->Program_3_Weld->Routine_Dispatch 中,修改以下参数,如图 2-34 所示。
- 将 EQU 指令中 SourceB 参数改为 3。
- 将 JSR 指令中Routine Name 参数改为 Station_3_Weld。
注意: 由于程序功能类似,我们通过简单的 Copy+Paste 就完成了程序的编写,无须重
修改标签,那么,我们可以想象,如果有多个冲压工作站,我们只需编写一个冲压工作站
的程序,其余的只需 Copy+Paste 就可以完成!
1. 单击工具条上
校验每个例程,出现错误提示后,纠正错误。然后,单击工具 条上
按钮校验整个项目并纠正出现的错误。
16. 在 Assembly->Program_1_Press->Station_1_Press 中,输入如图 2-35 所示梯形图逻辑。
17. 用户可以直接将 Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻
辑直接复制到 Assembly->Program_2_Stake->Station_2_Stake 例程后,修改如下参数:
-将StationTimer 的 Preset(预设值)改为 2000;
注意 :选择多行梯级可以按下 Shift(上档)键,依次单击想要选择的梯级即可。
修改后的结果如图 2-36 所示:
18. 用户可以直接将 Assembly->Program_1_Press->Station_1_Press 例程的梯形图逻
辑直接复制到 Assembly->Program_3_Weld-> Station_3_Weld 例程后,修改如下参数:
-将StationTimer 的 Preset(预设值)改为 3000;
-StationTimer 定时结束后,添加 Complete 输出,表示三道工序都已经完成,用于控制 Conveyor 输出。
修改后的结果如图 2-37 所示:
19. 单击工具条上
校验每个例程,出现错误提示后,纠正错误。然后,单击工具 条上
按钮校验整个项目并纠正出现的错误。
20. 保存该项目。
21. 至此,三个工作站的程序已经完成了,我们发现在创建过程中,实际上,仅仅程 序 Program_1_Press 是自己创建的,其它两个程序都是对第一个程序的 Copy+Paste 以及一些简单的修改。那么,用户可以先将程序 Program_1_Press 的标签、例程创建完成后,再复制、粘贴、修改以及校验。注意:标签名称为什么不会冲突?
22. 接下来我们编写 Conveyor ( 传送带)例程的梯形图逻辑, 双击任务
Conveyor->Conveyor->Conveyor 例程,编写如图 2-38 所示梯形图逻辑。
第 0 行梯级用于对光眼故障(接线故障)的报警。第 1、2 行梯级用于控制传送带输出。
23. 继续编写工作站调度例程。双击 Periodic_Dispatcher->Station_Dispatcher->Station
_Dispatcher 例程,编写如图 2-39 所示梯形图逻辑。
其中,梯级 0 用于生成压缩机产品编号。梯级 1 用于判断三道工序是否正在工作。梯
级 3、4 用于调度工作站。
24.
单击工具条上 校验每个例程,出现错误提示后,纠正错误。然后,单击工具
条上 按钮校验整个项目并纠正出现的错误。
我们使用例程和项目校验工具时只能查出程序中出现的语法错误;不能查出程序中的 逻辑错误。但是现场条件往往不允许直接连接 I/O 模块调试。通过趋势图,我们可以观察时序,进而分析程序逻辑关系是否正确。
25. 单击菜单 File-> Save 选项,保存该项目,如图 2-40 所示。
26.单击选择资源管理器中 Trends(趋势图)文件夹,右键单击并从弹出菜单中选择New Trend(创建新趋势图),如图 2-41 所示。
27. 从弹出的对话框中命名新趋势图 Compressor,单击 OK,如图 2-42 所示。
28. 弹出 Add/Configure Tags(添加/组态标签)对话框,从 Scope(作用域)中选择Controller(控制器)或其它程序,然后从 Available Tags(可用标签)中选择标签,单击Add(添加)键,您可以在 Tags to Trend(建立趋势图的标签组)看到所添标签。若要从Tags to Trend 中移除所添标签,单击 Remove(移除)键。按图 2-43 所示添加所需监视的标签。
29. 弹出趋势图画面,在画面单击鼠标右键,从弹出菜单中选择 Chart Properties(图表属性),如图 2-44 所示。先选择Display(显示)选项卡,将 Background color(背景色)改为白色。
30. 选择 X-Axis(X 轴)时间轴选项卡,设置相应参数如图 2-45 所示:
31. 选择 Y-Axis(Y 轴)选项卡,设置相应参数如图 2-46 所示。设置完成后,单击
OK 键。
32.设定完Trends(趋势图)参数后,创建的趋势图如图 2-47 所示:
33. 接下来,我们要将该程序下载到控制器中运行,通过趋势图观察其运行结果是否 正确。下载前确认您所使用的 Logix5555 控制器的钥匙处于 Remote 位置,且程序处于离线状态。单击菜单 Communications->Who Active,弹出如图 2-48 所示对话框。
34. 单击 Download(下载)按钮,将该程序下载到控制器中。如果您的控制器正处于Remote Run(远程运行)状态,将弹出如图 2-49 所示警告。
35.单击 Download(下载)按钮,出现下载进程,如图 2-50 所示。
36. 程序下载后,将控制器打到运行状态,用户通过扭动控制器上的钥匙实现,也可以鼠标左键单击如下图所示的 Online(在线工具栏),从弹出菜单中选择 Run Mode(运行模式),如图 2-51 所示。
37. 改变控制器运行模式后,用户首先双击已创建的 Compressor 趋势图,弹出趋势图画面,并单击 Run(运行),开始实时绘制曲线。
38.. 接下来通过手动触发 PartSensor 标签, 使模拟的生产线运行起来。双击Station_Dispatcher(站调度)例程,弹出程序窗口,触发梯级 2 中标签 PartSensor。如图 2-52 所示:
39.双击 Trends->Compress,切换到趋势图,并观察到时序图如图 2-53 所示:
至此,您已完成梯形图程序编写的相关实验!
相关问答
西门子plc编程时,以下这指令和16#F8是什么意思?-ZOL问答
16#F8指的是十六进制F8(与二进制11111000十进制248等值大小),我认为你在程序中用MOV_B把16#F8传送到SMB37/SMB47/SMB57/SMB137/SMB147/SMB1...
三菱plc怎么把10位转16位?
在三菱PLC中,将10位二进制数转换为16位二进制数可以使用位移运算和逻辑运算。以下是将一个10位的二进制数转换为16位的二进制数的示例代码:1.首先,将10位的二...
plc上的EMOR16是什么意思?
EMOR16是可编程逻辑控制器(PLC)中的一种命令。它用于将其他PLC命令(如定时器、计数器等)封装在一个块或子程序中,从而有助于形成更大范围的一体化控制系统...
欧姆龙软件编程的梯形图后怎么样上传到plc里-ZOL问答
1、硬件准备:将PLC用编程电缆和电脑连接,并安装电缆驱动(USB的要,串口不要)。2、软件准备:在编程软件中通信设置PLC类型、通信类型中toolbus,选择所要连接的串...
plc十六进制怎么转ascii码?
要将PLC的十六进制转换为ASCII码,可以使用编程语言实现。首先,将PLC的十六进制数值转换为十进制数值。然后,将该十进制数值转换为对应的ASCII字符。具体转换方...
plc编程梯形图如何编?
PLC编程梯形图如何编PLC编程梯形图的编写步骤如下:1.首先,是PLC编程梯形图需要按照特定的规则进行编写。2.是因为PLC编程梯形图是一种常用的图形化编程语言...
1200plc主程序怎么写?
编写1200PLC主程序的具体步骤如下:创建一个新的PLC项目,并在项目中创建一个主程序块。在主程序块中定义输入和输出变量。这些变量将用于与外部设备进行通信...
plc编程常见问题及解决方法?
一、查找故障的设备PLC的指示灯及机内设备,有益于对PLC整个控制系统查找故障。编程器是主要的诊断工具,他能方便地插到PLC上面。在编程器上可以观察整个控制...
信捷XC系列PLC编程软件安装教程?
3、选择下一步。4、选择安装路径,建议默认路径,然后下一步。5、继续下一步。6、选择安装。7、等待安装过程。8、安装完成。扩展PLC编程的应用面广、功...
码垛机plc程序编写技巧?
1.确定好物料码垛要求和工艺流程,包括机器运行的逻辑和流程操作;2.按照机器操作流程编写程序,严格控制输入输出信号,确保程序的正确性和系统的稳定性;3...