0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术工控主板通过PPI协议连接西门子PLC

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-05 11:21 次阅读

西门子S7-200系列PLC是工业场合应用最广的现场控制设备之一,S7-200系列PLC支持自由端口、MPI、PPI和Moddus等通讯方式。自由端口方式需要用户自己制定通讯协议,PLC与上位机两端都需要编写相应的协议程序,实现复杂、难度较高。西门子的Step7 MicroWin编程软件使用PPI(Point to Point)协议连接PLC,利用PPI协议可以调试\下载PLC程序、传输数据,但西门子并未公开PPI协议内容。Modbus是工业控制现场广泛应用的通讯协议,在嵌入式领域,嵌入式主板通常采用Modbus与PLC相连,英创嵌入式工控主板就提供了基于串口和TCP的Modbus软件包,但PLC要支持Modbus协议同样需要相应的程序编写,同时Modbus协议会占用一定的PLC中断和代码资源。

S7-200系列PLC的编程通讯接口内部固化了PPI通讯协议,如果上位机软件能利用PPI协议读写PLC,就可以省去PLC的通讯程序编写。为了方便嵌入式工控主板与PLC连接,我们分析了PPI通讯协议格式,把操作PLC的常用指令封装成了简单的API接口函数,利用这些函数可以实现设置PLC工作模式、读取PLC型号信息、读写PLC存储器等功能。

ESM6802是预装WEC7.0(或Linux)的i.MX6 双核嵌入式工控主板,板载了双网口,双CAN,7串口,4-USB PCIe x1、精简ISA等多种通讯接口,同时ESM6802提供了RGB、LVDS和HDMI三种显示接口,可以支持从320×240分辨率的低成本LCD到1920×1080的全高清显示屏。下面将以运行WEC7.0操作系统的ESM6802作为上位机,介绍WCE工控主板如何使用PPI协议连接S7-200 PLC。

1、硬件连接

S7-200系列PLC的编程通讯接口为RS485电平,安装Step7 MicroWin的PC机通过PC/PPI通讯线缆连接PLC。PC/PPI通讯线缆完成了RS232电平到RS485电平的转换,其RS232端与计算机串口相连,RS485端与PLC的编程通讯口相连。ESM6802同样使用PC/PPI线缆连接PLC,ESM6802的COM3口为RS232电平,PC/PPI线可直接插到ESM6802的COM3口上使用,ESM6802与PLC的硬件连接方法如下所示:

图1ESM6802与S7-200 PLC的硬件连接

2、软件实现

PPI是点到点的主从协议, PLC的通讯接口缺省情况下工作在PPI从(slave)模式,以便接收来自Step7 MicroWin编程软件的数据,Step7 MicroWin自然工作在PPI主(master)模式。ESM6802在与PLC相连时,ESM6802作为上位机工作在主模式,PLC通讯接口为缺省的从模式。

下面是我们基于PPI协议封装的操作PLC的API函数,详细的函数说明可参考ppi.h头文件。

// 功能描述: 设置相应串口的通讯参数

HANDLE PPI_OpenPort(LPCTSTR lpPortName);

// 功能描述: 关闭PPI使用的串口设备

BOOL PPI_ClosePort(HANDLE hPort);

// 功能描述: 设置ppi通讯的超时时间,单位为毫秒。默认超时时间为ms

int PPI_SetTimeout(HANDLE hPort, int nMilliseconds);

// 功能描述: 设置两次ppi通讯之间的间隔时间,单位为毫秒。默认时间间隔为ms

int PPI_SetPollDelay(HANDLE hPort, int nMilliseconds);

// 功能描述: 设置设置本机的PPI地址,默认本机地址为x00

BOOL PPI_SetLocalAddress(HANDLE hPort, UINT8 bLocalAddr);

// 功能描述: 与指定的PLC握手

int PPI_FindPLC(HANDLE hPort, UINT8 bSlaveAddr);

// 功能描述: 读取指定PLC的型号和保护等级

int PPI_GetPLCID(HANDLE hPort, UINT8 bSlaveAddr, UINT8 cpuId[], UINT8 *pProtectionLevel);

// 功能描述: 设置PLC工作在RUN模式或STOP模式

int PPI_SetPlcMode(HANDLE hPort, UINT8 bSlaveAddr, int nMode);

// 功能描述: 读PLC指定存储器数据

int PPI_Read(HANDLE hPort, UINT8 bSlaveAddr, LPCSTR lpStorageAddress, UINT8 *pNumofRead, UINT8 readData[]);

// 功能描述: 写PLC指定存储器数据

int PPI_Write(HANDLE hPort, UINT8 bSlaveAddr, LPCSTR lpStorageAddress, UINT8 *pNumofWrite, UINT8 writeData[]);

2.1WEC7应用PPI API示例

下图是在WEC7工控主板ESM6802上运行的利用PPI API操作PLC的Demo程序,程序实现了搜索PLC、设置PLC工作模式、获取PLC型号信息以及读写PLC存储器等功能。

图2在WCE上运行的操作PLC的例子程序

2.2Linux应用PPI API示例

下图是在Linux工控主板ESM6802上运行的PPI API应用示例。用户运行./test_ppi后进入命令行操作,可以实现搜索PLC、设置PLC工作模式、获取PLC型号信息以及读写PLC存储器等功能,可以通过m查看帮助信息,根据帮助信息对PLC进行操作。

图3在Linux主板上运行的操作PLC的例子程序

ESM6802具有相当丰富的通讯接口,与突出控制功能的PLC可以形成良好的功能互补,同时ESM6802对大屏显示器的支持也适合用做PLC控制系统的状态监控人机交互终端。

PPI API以lib库的形式提供,可以在英创所有WEC7 / Linux工控主板上运行,图2、图3所示的Demo程序提供源代码参考,感兴趣的用户可与英创联系索要。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11313

    浏览量

    209758
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35411
收藏 人收藏

    评论

    相关推荐

    基于 EtherCAT 转 ProfiNet 网关达成西门子 1200 PLC 与伺服电机通讯连接的应用实例

    一. 案例背景 西门子1200PLC通过捷米特JM-ECTM-PN(EtherCAT转ProfiNet)网关将松下伺服电机(包括不限于型号MHMFO22D1U2M)或EtherCAT协议
    的头像 发表于 12-09 16:29 340次阅读
    基于 EtherCAT 转 ProfiNet 网关达成<b class='flag-5'>西门子</b> 1200 <b class='flag-5'>PLC</b> 与伺服电机通讯<b class='flag-5'>连接</b>的应用实例

    NPN和PNP器件与西门子PLC连接与选型

    NPN和PNP器件与西门子PLC连接与选型    传感器根据输出类型可以分为NPN(有人称为源型传感器)和PNP(有人称为漏型传感器)两大类;两种类型的传感器都有3个引脚,分别接24V、0V
    的头像 发表于 12-03 10:11 473次阅读
    NPN和PNP器件与<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>的<b class='flag-5'>连接</b>与选型

    西门子中继器怎么连接plc

    西门子中继器(Siemens Relay)通常用于工业自动化系统中,作为控制和保护设备。在与PLC(可编程逻辑控制器)连接时,需要考虑信号类型、电源要求、接线方式等因素。 1. 了解西门子
    的头像 发表于 09-05 09:56 459次阅读

    S7协议读取西门子S7-200 Smart PLC数据

    西门子S7-200 Smart PLC因其稳定性和易用性而广泛应用。通过使用S7协议,可以实现对PLC数据的高效读取和控制。本文将详细介绍如
    的头像 发表于 07-11 11:55 6009次阅读
    S7<b class='flag-5'>协议</b>读取<b class='flag-5'>西门子</b>S7-200 Smart <b class='flag-5'>PLC</b>数据

    西门子200plc与电脑连接步骤

    西门子S7-200 PLC是一种广泛应用的小型可编程逻辑控制器,它具有高度的可靠性和灵活性,适用于各种工业自动化应用。为了实现与电脑的连接,我们需要进行一系列的步骤。 1. 准备工具和材料 西
    的头像 发表于 07-01 10:02 8597次阅读

    宏集物联网工控通过 S7 ETH 协议采集西门子 1200 PLC 数据

    上周我们分享了宏集HMI通过S7 MPI协议采集西门子400 PLC数据的操作步骤。本周,我们将继续带来干货,重点介绍宏集HMI如何通过S7
    的头像 发表于 06-21 16:02 542次阅读
    宏集物联网<b class='flag-5'>工控</b>屏<b class='flag-5'>通过</b> S7 ETH <b class='flag-5'>协议</b>采集<b class='flag-5'>西门子</b> 1200 <b class='flag-5'>PLC</b> 数据

    西门子PLC与ABB变频器通讯怎么实现

    能力和灵活的通讯接口,结合ABB变频器的高性能驱动和控制功能,共同构成了工业自动化系统中的核心部分。本文将对西门子PLC与ABB变频器通讯的实现进行详细阐述,包括通讯协议、硬件连接、软
    的头像 发表于 06-19 15:29 3200次阅读

    西门子PLC的作用和工作原理

    和广泛的应用范围,在全球范围内得到了广泛的应用。本文将详细阐述西门子PLC的作用和工作原理,并结合相关数字和信息,以期为读者提供一个清晰、全面的视角。
    的头像 发表于 06-15 11:26 2309次阅读

    西门子PLC的发展历史

    创新与突破。本文将详细梳理西门子PLC的发展历史,并结合相关数字和信息,以期为读者提供一个清晰、全面的视角。
    的头像 发表于 06-15 11:26 1988次阅读

    干货分享:宏集物联网HMI通过S7 MPI协议采集西门子400PLC数据

    宏集物联网HMI集成了多个驱动来适配西门子200、300、400、1200、1500、LOGO等系列PLC,本文主要介绍宏集HMI通过S7 MPI协议采集
    的头像 发表于 06-13 13:39 606次阅读
    干货分享:宏集物联网HMI<b class='flag-5'>通过</b>S7 MPI<b class='flag-5'>协议</b>采集<b class='flag-5'>西门子</b>400<b class='flag-5'>PLC</b>数据

    工业智能网关通过串口/网口实现西门子PLC实时通信

    的,只有在S7-200和S7-200Smart中直接集成了串口,同时协议也具备多样性,导致西门子PLC与上位机的通信往往会受到干扰,要么上位机适配西门子
    的头像 发表于 06-13 10:46 572次阅读
    工业智能网关<b class='flag-5'>通过</b>串口/网口实现<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>实时通信

    西门子plc模块型号详解

    西门子PLC(Programmable Logic Controller,可编程逻辑控制器)是工业自动化领域中非常重要的一种设备,其模块化的设计使得其应用范围非常广泛。本文将详细介绍西门子PL
    的头像 发表于 06-11 16:18 6151次阅读

    485口还是网口?西门子PLC通讯方式到底怎么选?

    西门子PLC都有一定的了解,但要你说出西门子PLC各种通信方式的特点,相信很多人都不能完整答出。下面给大家介绍几种常见的西门子通信方式及其
    的头像 发表于 04-24 11:04 1245次阅读
    485口还是网口?<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>通讯方式到底怎么选?

    西门子网口S7-COMM协议300 400如何使用?

    : 1、 不带网口的PLC型号(即PLC后缀是否带有PN字样)请外接CP343-1或CP443-1以太网模块,同时使用平台的**“西门子3** 43 - 1****以太网” 协议
    的头像 发表于 04-18 16:18 997次阅读
    <b class='flag-5'>西门子</b>网口S7-COMM<b class='flag-5'>协议</b>300  400如何使用?

    西门子PLC和施耐德PLC区别

    西门子PLC系统的设计、建造工作量小,维护方便,容易改造,西门子PLC用存储逻辑代替接线逻辑,大大减少了控制设备外部的接线,使控制系统设计及建造的周期大为缩短,同时维护也变得容易起来。
    发表于 01-17 10:14 2126次阅读