[西门子] 西门子博图编程基础指令-位逻辑,编程学习从基础开始

[复制链接]
查看17863 | 回复0 | 2024-5-23 17:47:59 | 显示全部楼层 |阅读模式
首先,新建一个项目并做好基本设置,可参照之前关于《西门子博图新建项目设定》文章内容,新建完成后可开始编程。

一、打开新建的项目程序块,双击主函数打开编辑窗口,这时在编辑窗口为空白状态,没有程序,如下图所示;



二、点击右边指令打开指令菜单,可以看到很多指令列表,双击或点击下拉三角符合打开“位逻辑运算”指令,如下图所示;



三、将鼠标放在对应指令上方不移动,会弹出指令的介绍,可打开帮助文件详细了解指令说明,用途,如下图所示;



四、常开触点:查询的操作数等于“1”时闭合,可表示PLC的输入点(I),输出点状态(Q),标识位存储区(M),定时器存储区(T),计数器存储区(C)等;

常闭触点:查询的操作数等于“0”时闭合,与常开触点刚好相反;下面以控制电机点动+自锁演示;

选中编程窗口程序段,双击指令或采用拖拉的方式将指令添加至程序段中,刚添加完成的指令没有地址,显示“???”这时需要根据用途指定地址,如下图所示;



五、依照电机点动要求,指定地址,如下图所示;



六、地址添加注释:选中注释“Tag_1”点击右键,选择“重命名变量”,也可事先在变量表中将I/O表做分配(可参照之前文章介绍),如下图所示;



七、修改完注释后,就完成了电机点动控制的编写,这时即可以下载程式到PLC进行测试,或采用离线模拟方式测试;当按下启动按钮(I0.0)时,电机开始旋转,松开按钮时电机停止,如下图所示;(PS:停止按钮一般采用常闭点)



八、取反指令,当启动按钮按下时,电机不动,当启动按钮未按时,电机反而转动;



九、常开常闭触点及可用于表示输入点也可用于表示输出点;



十、赋值取反:当输入条件成立时无效,输入条件不成立时有效,与取反指令区别,取反指令:可针对某一个条件或某些条件;如下图所示;



十一、置位-(S)、复位-(R)指令:一般为成对使用,有置位就要有复位;置位可理解为强制使状态为“1”,复位强制为“0”;同样以电机点动+自锁为例,按下启动按钮I0.0后电机一直转动,松开按钮仍处于启动状态,按下停止按钮I0.1时,电机状态复位,如下图所示;



十二、置位区域SET_BF、复位区域指令RESET_BF:指令上方为起始地址,指令下方的数值为要操作的数量,如下图所示表示:当按下启动按钮时Q0.0-Q0.2同时输出有效,按下停止按钮时:Q0.0-Q0.2同时复位无效;通常可用于程式初始化;



十三、触发器:SR、RS;置位/复位触发器以复位优先级更高,当两端都有信号时输出无效;复位/置位触发器以置位优先级更高,当两端都有信号时输出有效,当启动按钮松开时复位输出端;如下图所示;



十四、上升沿:当操作数的信号状态有“0”变成“1”时,指令返回RLO为“1”;用于检测启动按钮被按下瞬间返回有效值“1”连接输出时一般采用置位指令;也可常用于计数器输入端,

下降沿:当操作数的信号状态有“1”变成“0”时,指令返回RLO为“1”;机器人启动按钮一般采用下降沿有效;

主要用途将输入信号脉冲化,防止一些不必要的动作;



十五、在信号上升沿置位操作数-(P):如果RLO信号状态从“0”变为“1”,则将指定的操作数设置为“1”;

在信号下降沿置位操作数-(N):如果RLO信号状态从“1”变为“0”,则将指定的操作数设置为“1”;

主要为根据信号状态将输出操作数脉冲化;



十六、使用“扫描 RLO 的信号上升沿”指令,可查询逻辑运算结果 (RLO) 的信号状态从“0”到“1”的更改。该指令将比较 RLO 的当前信号状态与保存在边沿存储位(<Q0.0>)中上一次查询的信号状态。如果该指令检测到 RLO 从“0”变为“1”,则说明出现了一个信号上升沿。

每次执行指令时,都会查询信号上升沿。检测到信号上升沿时,该指令输出 Q 将立即返回程序代码长度的信号状态“1”。在其它任何情况下,该输出返回的信号状态均为“0”。

使用“扫描 RLO 的信号下降沿”指令,可查询逻辑运算结果 (RLO) 的信号状态从“1”到“0”的更改。该指令将比较 RLO 的当前信号状态与保存在边沿存储位(<Q0.1>)中上一次查询的信号状态。如果该指令检测到 RLO 从“1”变为“0”,则说明出现了一个信号下降沿。

每次执行指令时,都会查询信号下降沿。检测到信号下降沿时,该指令输出 Q 将立即返回程序代码长度的信号状态“1”。在其它任何情况下,该指令输出的信号状态均为“0”。如下图所示;



十七、使用“检测信号上升沿”指令,可以检测输入 CLK 的从“0”到“1”的状态变化。该指令将输入 CLK 的当前值与保存在指定实例中的上次查询(边沿存储位)的状态进行比较。如果该指令检测到输入 CLK 的状态从“0”变成了“1”,就会在输出 Q 中生成一个信号上升沿,输出的值将在一个循环周期内为 TRUE 或“1”。

在其它任何情况下,该指令输出的信号状态均为“0”。

输入 CLK 中变量的上一个状态存储在“R_TRIG_DB”变量中。如果在操作数“I0.0”或在操作数“I0.1”中检测到信号状态从“0”变为“1”,则输出“Q0.0”的信号状态在一个循环周期内为“1”。



以上仅为个人学习总结分享,供参考!如有错误请留言立刻修改,纯粹学习交流,谢绝商用!

==END

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则