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
    +关注

    关注

    88

    文章

    11631

    浏览量

    218042
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36953
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EtherCAT转ProfiNet协议转换网关实现西门子PLC与贝加莱工控机通讯的配置案例

    一、案例背景 在某大型工业制造企业的生产线中,面临着设备协议不兼容的挑战。该生产线的核心控制系统包括贝加莱工控机和西门子PLC,分别采用EtherCAT和Profinet
    的头像 发表于 09-02 15:48 494次阅读
    EtherCAT转ProfiNet<b class='flag-5'>协议</b>转换网关实现<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>与贝加莱<b class='flag-5'>工控</b>机通讯的配置案例

    西门子PLC如何使用Modbus 485通讯传输接收数据

    西门子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及
    的头像 发表于 08-19 13:52 4076次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>如何使用Modbus 485通讯传输接收数据

    西门子SMARTS7-200PLC与S7-1500PLC以太网通讯及PPI集成实现分布式IO控制

    在工业自动化领域,西门子S7-200系列PLC凭借其高可靠性和性价比,长期占据着中小型自动化项目的重要市场份额。然而,该系列PLC存在一个显著局限:原生不具备以太网通讯接口,仅通过RS
    的头像 发表于 08-15 18:03 939次阅读
    <b class='flag-5'>西门子</b>SMARTS7-200<b class='flag-5'>PLC</b>与S7-1500<b class='flag-5'>PLC</b>以太网通讯及<b class='flag-5'>PPI</b>集成实现分布式IO控制

    西门子PLC通过稳联技术EtherCAT转Profinet网关连接baumuller伺服器的配置案例

    西门子PLC用稳联技术的EtherCAT转Profinet网关,连上baumuller伺服器的配置例子 本案例实现西门子S71200 PLC
    的头像 发表于 08-14 16:49 489次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b><b class='flag-5'>通过</b>稳联<b class='flag-5'>技术</b>EtherCAT转Profinet网关<b class='flag-5'>连接</b>baumuller伺服器的配置案例

    通信协议高材生,PROFINET to CANopen网关连接西门子PLC与汇川变频器

    PLC通过CANopen监控变频器的运行是工业中较为常见的应用,控制中心系统通过监控变频器不同的状态来控制变频器启停,设定变频器的运行速度进而控制电机。监控系统采用西门子1500系列
    的头像 发表于 08-12 10:49 689次阅读
    通信<b class='flag-5'>协议</b>高材生,PROFINET to CANopen网关<b class='flag-5'>连接</b><b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>与汇川变频器

    开疆智能ModbusTCP转Profient网关连接西门子PLC与川崎机器人配置案例

    本案例是西门子PLC与川崎机器人通过Profient转ModbusTCP网关进行通讯转换的配置案例,西门子作为profinet主站,机器人作为ModbusTCP服务器。
    的头像 发表于 07-26 11:14 905次阅读
    开疆智能ModbusTCP转Profient网关<b class='flag-5'>连接</b><b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>与川崎机器人配置案例

    西门子PLC免点表数据采集方案

    西门子PLC S7-1200、S7-1500、S7-300/400型号设备,常用协议PPI(Process Communication Interface)、
    的头像 发表于 07-04 11:26 511次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>免点表数据采集方案

    西门子PLC(S7-1200/1500/300/400)的数据采集与监控方案

    西门子PLC S7-1200、S7-1500、S7-300/400型号设备,常用协议PPI(Process Communication Interface)、
    的头像 发表于 07-04 10:13 988次阅读

    3 分钟极速上手!西门子 PLC 无缝连接指南

    PLC数据采集 3 分钟极速上手!西门子 PLC 无缝连接指南
    的头像 发表于 06-17 18:02 1785次阅读
    3 分钟极速上手!<b class='flag-5'>西门子</b> <b class='flag-5'>PLC</b> 无缝<b class='flag-5'>连接</b>指南

    如何破解三菱PLC西门子PLC的通讯难题

    在工业自动化领域,不同品牌PLC之间的通讯一直是工程师们关注的焦点。三菱PLC西门子PLC作为市场主流设备,常因协议差异导致数据交互困难。
    的头像 发表于 06-09 17:14 824次阅读
    如何破解三菱<b class='flag-5'>PLC</b>与<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>的通讯难题

    工业智能网关可以采集西门子PLC

    、台达等。 具体而言,工业智能网关采集西门子PLC数据的过程如下: 连接方式:通过串口或网口将工业智能网关与西门子
    的头像 发表于 05-26 09:14 687次阅读

    EtherCAT转ProfiNet西门子1200PLC与伺服电机通讯案例全解

    一. 案例背景 西门子1200PLC通过 捷米特JM-ECTM-PN (EtherCAT转ProfiNet) 网关模块 将松下伺服电机(包括不限于型号MHMFO22D1U2M)或EtherCAT
    的头像 发表于 03-21 09:42 1406次阅读
    EtherCAT转ProfiNet<b class='flag-5'>西门子</b>1200<b class='flag-5'>PLC</b>与伺服电机通讯案例全解

    Profinet转EtherCAT深度解读网关模块如何协议转换赋能西门子PLC与伺服驱动高效协作案例​

      一. 案例背景 西门子1200PLC通过捷米特JM-ECTM-PN( EtherCAT转ProfiNet )网关将松下伺服电机(包括不限于型号MHMFO22D1U2M)或EtherCAT
    的头像 发表于 03-14 10:58 641次阅读
    Profinet转EtherCAT深度解读网关模块如何<b class='flag-5'>协议</b>转换赋能<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>与伺服驱动高效协作案例​

    EtherCAT转Profinet西门子PLC与倍福电机连接通讯案例

    ,网关作为从站与西门子 PLC 通信,将采集到的电机数据准确无误地传输给 PLC,搭建起两者之间的数据沟通桥梁。
    的头像 发表于 02-22 09:26 1382次阅读
    EtherCAT转Profinet<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>与倍福电机<b class='flag-5'>连接</b>通讯案例

    PLC边缘计算网关采集西门子PLC数据过程

    提供了一种新的解决方案。 PLC边缘计算网关采集西门子PLC数据的过程 (一)确定通信方式 首先,需要确定PLC边缘计算网关与西门子
    的头像 发表于 01-24 16:33 1826次阅读