上位机如何和PLC通讯(西门子举例)

B站  :道传科技上位机   观看教程

一、一些基础概念

一、S7协议

S7协议是西门子公司为其S7系列可编程逻辑控制器(PLC)开发的一种通信协议。S7协议主要用于西门子S7系列PLC之间的通信,也可用于PLC与其他设备(如人机界面HMI、变频器、传感器等)之间的通信。通过S7协议,可以实现数据的读取、写入、传输和处理等功能,从而实现设备之间的互联互通。

二、为什么和PLC之间的交互是int\byte\float\double\bool\string

PLC之间的交互使用intbytefloatdoubleboolstring等数据类型的原因主要包括以下几点‌:

1、数据类型兼容性‌PLC通常需要处理各种类型的数据,包括整数、浮点数、布尔值等。这些数据类型能够满足大多数工业控制的需求,确保数据的准确性和可靠性。

2、通信效率‌:使用标准的数据类型可以简化通信协议的设计和实现,减少通信过程中的错误和延迟。标准数据类型在数据编码和解码过程中更加高效,能够快速传输和处理。

3、易于理解和维护‌:使用标准数据类型使得编程和调试更加简单,因为这些数据类型在工业控制领域有广泛的应用和成熟的支持。工程师可以更容易地理解和维护代码,减少因数据类型不兼容导致的问题。

4、通用性‌:不同的PLC品牌和型号之间需要保持一定的兼容性,使用标准数据类型可以确保不同设备之间的互操作性,减少因数据类型不匹配而导致的通信故障。

5、历史原因‌:在工业自动化领域,这些数据类型已经经过长时间的验证和使用,形成了行业标准。改变这些数据类型可能会带来不必要的麻烦和成本,因此沿用这些标准数据类型更为合理。

三、int\byte\float\double\bool\string等是什么

1.布尔类型 BOOL

也就是我们常说的01,也可以理解为 TrueFalse,对于PLC来说就是DIDigital Input)或者DODigital Output)点的输入或输出状态,我们一般用Bool类型表示。对于西门子PLCDI点,可以使用 I0.0表示,DO点用 Q0.0,还有M0.0V0.0等表示。所以会经常看到 I0.0~I0.7,布尔类型只占用1位;

2. 字节类型 Byte

一个字节有8位,在PLC的存储器里,比如 IB1MB1,就代表字节,那么将字节分解后 是8位,在第一项里布尔类型中提到 I0.0~I0.7就可以组成一个字节IB0M0.0~M0.7组成MB0,所以我们想要提高读取速度,可以直接使用字节读取,然后再进行分解。数据范围0~255

3. 字类型 WORD

一个字包含16位,比如MW0,他就是由MB0MB1组成,在使用字类型数据时,会出现组态软件读取的值不对,那么就有可能是字节的排列顺序不一样,可以对高低字节进行交换,很多软件都有这个功能。数据范围0~65535

4. 双字类型 Double Word

双字包含32位,由2个字组成,比如DW0,它包含2个字MW0MW2,包含 4个字节MB0,MB1,MB2,MB3,所以很多人在使用寄存器时会碰到各种问题,那么就有可能使用的寄存器存在交叉的问题。比如DW0DW2这两个双字就存在地址交叉的问题。数据范围 0~4294967295

5. 整数类型 INT

一般又可以分为有符号,无符号,数据范围 -32768~32767

6. 双整形 DINT

同上也可以分为有符号,无符号类型,数据范围 -2147483648~2147483647

7.实数类型 real

显示十进制的数据,可以包括小数点,一般都是32位,当然也有64位的实数类型。

四、上位机和PLC之间的程序怎么写

基本上所有的PLC和上位机的通讯都可以按照以下的方式去写

1、在NuGet包管理器下载对应的库:比如说西门子 在NuGet包管理器窗口中,点击“浏览”选项卡,然后在搜索框中输入“Sharp7”

2、编写连接和断开的代码

3、编写读取数据部分的代码

4、编写写入数据部分的代码:‌

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值