当前位置:首页 > 技术分析 > 正文内容

在看别人写包含STL的程序时,如何能快速读懂STL程序?

对于一般初学PLC或只熟悉LAD、FBD语言的人来说,再看到STL语言编写的程序会很迷糊,觉得无从下手,通常会转换成自己熟悉的编程语言(当然了大部分是转换不过去的),其实STL语言还是比较好理解的,今天就跟大家聊聊如何快速读懂STL程序。

一、STL指令及其结构:

有些语句指令不带操作数,它们操作的对象是唯一的。

如:NOT //对逻辑操作结果(RLO)取反。

二、寻址方式:

1、立即寻址:对常数或常量的寻址方式,操作数本身包含在指令中。

如下面的指令:

set //把 RLO (Result of Logic Operation)置“1”

L 27 //把整数27装人累加器1

L C#0100 //把 BCD码常数0100装入累加器1

2、直接寻址:在指令中直接给出操作数的存储单元地址。

如下面的指令:

A I0.0 //对输入位I0.0进行“与”逻辑操作

S L20.0//把本地数据位L20.0置1

= M115.4 // 将RLO的内容传给位存储区中的位M115.4

L DB1.DBD12 //把数据块DB1双字DBD12中的内容传送给累加器1。//双字表示32位,如浮点数为32为双字

3、存储器间接寻址

标识参数由一个存储器给出,存储器的内容对应该标识参数的值(该值又称为地址指针),这种寻址方式能动态改变操作数存储器的地址,常用于程序循环过程中的寻址。

如下面的例子:

A I[MD 2]//对由MD 2指出的输入位进行“与”逻辑操作,

如: MD 2值为2#0000 0000 0000 0000 0000 0000 0101 0110,表示I 10. 6

L IB[DID 4]//将由双字DID 4指出的输入字节装入累加器1,

如:DID 4值为2#0000 0000 0000 0000 0000 0000 0101 0000,表示对IB10操作

OPN DB[MW 2]//打开由字MW2指出的数据块,如MW2为3,则打开DB3

4、寄存器间接寻址 :在S7中有两个地址寄存器(AR1和AR2)地址寄存器的内容 + 偏移量 = 地址指针

如下面的例子:

L P#8.6//将P#8.6装入累加器1

LAR1//将累加器1的内容传送至地址寄存器1

L P#10.0//将P#10.0装入累加器1

LAR2//将累加器1的内容传送至地址寄存器2

A I[AR1,P#1.0]//AR1+偏移量(9.6)

Q[AR2,P#4.1] //AR1+偏移量(14.1)

三、在线监视

我们在看程序时,一般需要在线监视程序执行状态,STL程序的在线状态及说明如下图所示:

1、系统内部寄存器:

S7 CPU的寄存器有(7个)

2、STA状态位:

o STA表示被操作的数据的当前状态,0或者1;

o 仅表示布尔量;

o 非布尔量的数值以ACCU累加器表示

例如:

AN I0.0 //I0.0 现在为0,则STA为0,但是执行完毕后RLO为1。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4438.html

标签: c#在线
分享给朋友:

“在看别人写包含STL的程序时,如何能快速读懂STL程序?” 的相关文章

BuildKit 镜像构建工具

#暑期创作大赛#快速开始 对于 Kubernetes 部署,请参阅examples/kubernetes。BuildKit 由buildkitd守护进程和buildctl客户端组成。虽然buildctl客户端可用于 Linux、macOS 和 Windows,但buildkitd守护程序目前仅适用于...

Vue Router 4 路由操作 - 路由导航

路由导航分为 声明式导航 和 编程式导航。通过 <router-link to="..."> 标签跳转的方式为声明式导航。通过 路由实例对象(router.push(...))跳转的为编程式导航。导航到不同的位置想要导航到不同的URL,使用 router.push 方法。...

TDesign企业级开源设计系统越发成熟稳定,支持 Vue3 / 小程序

TDesing 发展越来越好了,出了好几套组件库,很成熟稳定了,新项目完全可以考虑使用。早在2021年,腾讯的 TDesing 刚发布不久,我就写了一篇简短的文章来介绍,当时主要关注的是 TDesign 的 Vue 组件库和用来搭建 admin 后台系统的实用性。虽然当时看起来不错,但还处于测试版,...

深入理解同步/异步与阻塞/非阻塞区别

编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由「那谁」投稿。转载请注明来自高可用架构公众号「ArchNotes」。「那谁」,codedump.info 博主,多年从事互联网服务器后台开发工作。几年前曾写过一篇描写同步/异步以及阻塞/非阻塞的文章,最近再回头看,还存在一些理解和认知误...

什么是vue脚手架

Vue脚手架是一个用于快速构建Vue.js项目的工具。它提供了一个基本的项目结构和一些常用的开发工具和配置,使开发者能够更快速地开始一个新的Vue.js项目,并且能够更高效地进行开发和调试。Vue脚手架的主要功能包括:1. 项目结构:Vue脚手架提供了一个基本的项目结构,包括源代码目录、静态资源目录...

VUE高效开发 - 脚手架

哈喽哈喽 大家好,今天跟大家分享一下关于vue开发的一些小技巧。目前前端最主流的两个 开发 模式 就是 react 和 vue 。他们的特点显明,一个是类似 jsp的jsx语言,js动态拼凑html片段,一个是模板与控制分开,各有千秋,都有大量的支持者。今天主要给大家介绍一个基于vue的项目,从哪些...