不会PLC,怎么学上位机?

不会PLC,能不能学上位机?

我认为是可以的,但是要了解一些PLC的基础知识。

一、PLC品牌系列

首先我们要了解一下PLC的品牌系列。

目前我们常用的PLC品牌和汽车品牌一样,也分成多个系列,主要有日系、德系、美系和国产。

日系PLC代表是三菱、欧姆龙、基恩士、松下。

德系PLC代表是西门子和倍福。

美系PLC代表是罗克韦尔AB和GE。

国产PLC代表是汇川、台达、信捷。

二、PLC工作原理

其次,我们要了解一下PLC的工作原理。

PLC是一种可编程逻辑控制器,基于"循环扫描"方式运行,扫描周期通常在几毫秒到几十毫秒,取决于程序复杂程度和CPU性能。

每个扫描周期包含以下三个阶段:

1、输入采样阶段

读取所有输入信号‌:PLC将物理输入端口的状态(如传感器信号)一次性读取到输入映像寄存器中,确保程序执行期间输入状态的一致性。

**2‌、**程序执行阶段

逐行执行用户程序‌:CPU按照梯形图、指令表等编程语言的逻辑顺序进行运算,处理输入数据,生成中间结果并存储在输出映像寄存器中。此阶段输入映像寄存器的值保持不变,即使实际输入状态变化也不会影响当前周期。

**3、**输出刷新阶段

更新物理输出 ‌:将输出映像寄存器的结果一次性传送到输出模块,驱动执行器动作(如启动电机)。完成输出刷新后,PLC重新进入下一轮扫描周期。不同的PLC项目主要是输入输出数量及程序逻辑复杂程度不一样。

三、PLC存储区

了解完PLC工作原理后,接下来就要了解PLC存储区?

PLC作为一种下位机,上位机与PLC之间主要通过通信进行交互,然而通信的最终目的是为了实现数据交互,数据载体即为存储区。

因此,学习上位机,一定要对了解PLC存储区。

PLC品牌和种类很多,那么我们该如何学习呢?

  • 从数据类型来看,PLC存储区无非分为3类,一类是以字节为单位的,一个是以布尔为单位,一个是以字(即寄存器)为单位。

  • 从读写特性来看,对于PLC来说,除了输入存储区,比如西门子的I区,三菱的X区,其他存储区都是可读可写的。

综合来看,对于我们来说,PLC存储区只有两种,一种是西门子PLC,另一种是其他PLC。

四、西门子PLC

西门子PLC存储区主要有I区、Q区、M区、DB存储区、V区(即DB1),对于C区计数器和T区定时器,一般使用较少,我们一般主要使用DB存储区/V区。

这里以V区为例,其他存储区都是类似的。

西门子PLC存储区以字节为单位,每个字节中包含8个位,每2个字节组成一个字,每4个字节组成一个双字或单精度浮点数,每8个字节组成一个长字或双精度浮点数。

VB100:表示V区中第100个(从0开始)字节。

VW100:由VB100+VB101两个字节组成。

VD100:由VB100-VB103四个字节组成。

V100.0:表示VB100中的第0个位。

通过地址只能确定所占的字节数,不能确定具体数值的,还需要配合数据类型,比如VD100,即可以表示有(无)符号整型,也可以表示单精度浮点数。

另外西门子对数据类型的定义与我们C#中的数据类型是不一样的,具体对照表如下:

五、三菱PLC

三菱PLC、欧姆龙PLC、信捷、汇川、台达等日系或国产PLC,它们的存储区都是比较类似的。 这里以三菱FX5U PLC为例进行说明。

三菱PLC存储区主要有X、Y、M、D、W,一般我们主要使用M区和D区,X区、Y区、M区是布尔存储区,D区、W区是字存储区。

对于X区Y区,一般会是8/16进制,M区是10进制,X10(8进制)表示的是X区的第8个地址,M10表示的是M区的第10个地址。

对于W区,一般是16进制,而D区是10进制,W0A 表示的是W区的第10个字,D10表示的是D区的第10个字。

这里的进制不用过于纠结,以实际PLC提供的地址表为准。

每个字包含16个位,以D100为例,D100包含D100.0-D100.F,这里的位一般会写成16进制。每2个字组成一个双字,可以表示整型或单精度浮点数,比如D100(双字/浮点数)就是由D100和D101组成而成。

如果学过Modbus就会发现,三菱PLC的地址模型和Modbus是非常相似的,X区映射输入线圈,Y和M映射输出线圈,D和W映射保持寄存器,而输入寄存器一般不使用,下面是三菱FX5U PLC的Modbus映射表:

因此,如果熟悉Modbus协议,很多PLC的存储区是非常容易理解的。

六、标签通信

上面说的存储区和地址模型都是基于地址偏移的。

上位机通信还有另外一种方式,就是基于标签通信,这个以倍福PLC和罗克韦尔AB PLC为代表,其他PLC也慢慢开始支持,比如西门子、汇川等。

标签通信,顾名思义,就是不再需要寻址,可以直接通过变量名称来实现通信。这个主要由通信协议决定,目前支持标签通信的协议包括倍福的Ads通信协议,AB、欧姆龙的EtherNet/IP通信协议、西门子PLC的S7Plus通信协议以及OPCDA/UA通信等。

相关推荐
o0向阳而生0o4 小时前
71、C# Parallel.ForEach 详解
c#
code bean4 小时前
【设计模式】用观察者模式对比事件订阅(相机举例)
观察者模式·设计模式·c#
Kookoos6 小时前
ABP VNext + MongoDB 数据存储:多模型支持与 NoSQL 扩展
后端·mongodb·c#·.net·abp vnext
甄天6 小时前
WPF数据绑定
c#·wpf
牛奶咖啡138 小时前
C#的泛型和匿名类型
c#·泛型接口·泛型方法·泛型委托·泛型类·泛型参数约束·匿名类型
99乘法口诀万物皆可变8 小时前
C#设计模式之AbstractFactory_抽象工厂_对象创建新模式-练习制作PANL(一)
服务器·javascript·c#·html
TomCode先生11 小时前
C# 基础知识总结(带详细文字说明)
开发语言·c#
上位机付工15 小时前
C#上位机通过WebApi访问WinCC
开发语言·c#·上位机·webapi·wincc
棉晗榜1 天前
C# .net core添加单元测试项目,依赖注入接口测试
单元测试·c#·.netcore