C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法

前言

        上一篇文章中介绍了Snap7访问西门子S7-1200/S7-1500 DB块的方法,对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块,VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试,M226ES支持S7主站和从站协议。S7作为主站,S7-1200做为从站的通信也已经过测试。

M226ES简介

        40点总线运动控制型CPU,支持16个EtherCAT总线轴,支持8/10路*200KH运控输出,24DI/16DO晶体管漏型输出,200KB+48KB+48KB程序空间/64KB数据空间,24VDC电源,2个PP和自由通讯口可切换,1个EtherNET通讯口1个EtherCAT总线通讯口(可配置成EtherNET),支持CAN、RS485和模拟量扩展板;支持Profinet智能从站;支持网口在线升级固件;支持C语言编程;支持Trace追踪功能;支持单轴运控(如定位、速度和回原等)功能;支持多轴多路直线/圆弧插补、连续插补、电子齿轮、电子凸轮和追飞剪功能;支持PLCopen标准指令库。

规格项目CPU M226EM
综合特性
尺寸(宽×高×深)196×80×62 mm
功耗20W
程序存储器200KB+48KB+48KB
数据存储器64KB,永久保存
最大扩展模块数7
最大数字量128DI/128DO(扩展can扩展板最多640DI/640DO)
最大模拟量32AI/32AQ(扩展can扩展板最多194AI/194AQ)
数据保存FlashROM(永久保存)
电源特性
额定输入电压DC24V
冲击电流28.8VDC时12A
隔离(现场与逻辑)
保持时间(掉电)10ms以上
+5V电源输出扩展总线1A
BD扩展板总线200mA(有开关控制)
通信10mA 100R电阻
传感器+24V电源输出电压范围:20.4~28.8VDC
额定电流:300mA
纹波噪声:跟输入电源相关
隔离(传感器与逻辑):不隔离
电源告警电源不足15V告警,报警位SM195.1
常规特性
定时器总数2048
      1ms36
      10ms752
      100ms1260
计数器2048个
累加器4个
内存存贮器位8192位
内存存储位掉电保持时间永久保持
局部存储区(L)64字节独立
顺序控制继电器(S)8192位
时间中断2个1ms分辨率
边沿中断10个上升沿和/或10个下降沿(I0.0,I0.7,I1.0,I1.1)
布尔量运算执行时间≤1.5µs
浮点运算执行时间≤6.2µs
实时时钟内置
BD扩展板接口数1个,支持RS485扩展板、CAN扩展板、模拟量扩展板
系统指示灯SF指示灯(红色)ON:系统错误,OFF:正常
DIAG指示灯(橙色)ON:程序控制,OFF:正常
RUN指示灯(绿色)ON:运行,OFF:停止
STOP指示灯(橙色)ON:停止,OFF:运行
RMC指示灯(绿色)ON:远程控制连接,OFF:远程控制断开
LNK/ACT指示(绿色)ON:以太网连接,闪烁:传输,OFF:断开
运行开关RUN/STOP
外接电池接口支持,电源不足2.0V,报警位SM195.0
编程卡支持
存储卡支持TF卡(预留)
高级功能⽀持Trace追踪功能;⽀持C语⾔编程。
运控功能⽀持多轴多路直线/圆弧插补、连续插补、电⼦凸轮和追⻜剪功能;⽀持单轴运控(如定位、速度和回原等)功能。⽀持PLCopen标准指令库
集成的通信功能(PPI/自由口)
通讯接口2个通信口:
PORT0:PPI/自由口,标准RS485电平
PORT1:PPI/自由口,标准RS485电平,在侧面引出
插上RS485扩展板并重新启动之后,PORT0固定为PPI口不可切换,自由口FPORT0配置到RS485扩展板。
PPI波特率(baud)9.6k、19.2k和187.5k
自由口波特率(baud)1.2k ~ 115.2k
最大站点数每段32个站,每个网络126个站
最大主站数32
点到点(PPI主站模式)是(NETR/NETW),最多8个连接,每个连接最大通信200字节
MPI连接共8个(1PG/1OP),2个保留
每段最大电缆长度
      使用隔离中继器波特率为187.5k时1000米,38.4k时1200米
     未使用隔离中继器50米
以太网通信功能
通信接口2个标配以太网口
通信标准符合IEEE802.3
传输速度10Mbps/100Mbps自适应
自适应交叉连接支持
硬件接口RJ45
协议类型UDP,TCP/IP
配置方式通过编程软件MagicWorks PLC下载网络块进行配置
应用接口支持MICO服务、UDP/PPI、TCP/Modbus、Socket,S7协议
最大连接数8个UDP/PPI不分主从
8个TCP/Modbus不分主从
4个Socket连接,UDP和TCP各2个
8个S7协议,不分主从站
EtherCAT接口最多支持16个从站连接
最大单次传输数据UDP/PPI每次操作最多200字节
TCP/Modbus每次操作最多240字节
Socket每次操作最多512字节
S7协议每次操作最多200字节
网口启动时间5~10秒,受网络环境影响。
指示灯RMC亮起:连接远程服务器成功
熄灭:远程未连接或远程未使能
LINK/ACT亮起:网口硬件已连接
闪烁:有数据交换
熄灭:网口硬件已断开
通信电缆长度100M,电缆类型:CAT5e标准以上
隔离通信口隔离
IP地址复位功能2秒内连续拨5次运行开关
升级固件功能使用MagicWorks PLC及MiCo,通过以太网从公司服务器远程升级固件
I/O特性
本机数字量输入点数24
输入类型漏型/源型
本机数字量输出点数16
输出类型漏型
数字I/O映象区640DI/640DQ(含CAN通信专用映像区)
模拟I/O映象区194AI/194AQ(含CAN通信专用映像区)
允许最大扩展I/O模块数7
脉冲捕捉输入不支持
高速计数器
    总数10
    单相计数器10×200KHz
    AB相计数器10×100KHz
集成通信功能(CANopen)-扩展CAN通信板型号CTH2-CAN-01S2-EB时使用
通信接口1个(8 Pin端子)”见CANopen通信接口表”
传输率(kbps)10008005002501505020
最大长度(m)255010025050010002500
最大站地址127
站点地址范围1-127
最大主站带从站数32
配置方式CAN组态块和EDS文件
最大数字量访问普通IOCANopen专用IO
字节数内存起始地址字节数内存起始地址
输入16IB0输入64IB16
输出16QB0输出64QB16
最大模拟量访问普通IOCANopen专用IO
通道数内存起始地址通道数内存起始地址
输入32AIW0输入162AIW64
输出32AQW0输出162AQW64
集成通信功能(CANFree)-扩展CAN通信板时使用
通信协议CanFree
使用方式通过内部库指令支持
数字量输入特性
本机集成数字量输入点数24
输入类型漏型/源型
额定电压24 VDC
输入电压范围20.4~28.8 VDC
浪涌电压35 VDC,持续0.5s
逻辑1信号(最小)15 VDC,2.5mA
逻辑0信号(最大)5 VDC,1mA
连接2线接近开关传感器(BERO)1mA
允许的漏电流(最大)
输入滤波可配置
I0.0~I2.3支持以下参数:
0.2us,0.4us,0.8us,1.6us,3.2us,6.4us,12.8us,
0.2ms,0.4ms,0.8ms,1.6ms,3.2ms,6.4ms,12.8ms,默认为6.4ms
I2.4~I4.3支持以下参数:
0.2ms,0.4ms,0.8ms,1.6ms,3.2ms,6.4ms,12.8ms,默认6.4ms
隔离(现场与逻辑)500 VAC,1分钟
隔离组
同时接通的输入24
最大电缆长度500米(标准输入)
屏蔽:50米(高速计数器输入);非屏蔽:300米(标准输入)
数字量输出特性
本机集成数字量输出点数16
输出类型漏型
输出额定电压DC:24V
输出电压范围DC:5~30V
每个公共端最大电流6A
输出电流(最大)0.5A
漏电流(最大)10uA
浪涌电流8A,100ms
灯负载5W
导通电阻典型值0.15Ω,最大0.32Ω
输出延迟(最大)断开到接通:
断开到接通/接通到断开0.2us(16个Q点)
——
接通到断开:
2us(16个Q点)
——
高速脉冲输出8(Pulse/Dir)/10(Pulse)*200KHz
输出频率(最大)200KHz(Q0.0到Q1.7)
机械寿命(无负载)
触点寿命(额定负载)
同时接通的输出16
两个输出并联不支持
最大电缆长度屏蔽500米
非屏蔽150米

MagicWorksPLC简介

        MagicWorksPLC支持梯形图编程、STL语言编程、C语言编程。详细的资料建议大家到合信官网进行学习。

https://www.co-trust.com/Products/Special1/Products/MagicWorks/PLC/desc.htmlicon-default.png?t=N7T8https://www.co-trust.com/Products/Special1/Products/MagicWorks/PLC/desc.html

        下图为 MagicWorksPLC的基本界面和功能,包括硬件组态、通信调试、向导功能等,几乎和西门子编程软件一模一样。

M226ES 运动控制功能简介

        

        M226ES运动控制功能非常强大,支持10轴脉冲输出、5个高速计数器、16个Ethercat从站。指令符合PLCOpen规则。并支持多种通信协议如S7、PN从站、UDP、UDP_PPI、ModbusTcp、Modbus RTU。M226es和当下最流行的汇川EASY系列PLC相比,M226ES的通信功能更为强大。基本所有功能都已经在项目中得到应用。

        指令命名及状态机逻辑完全符合IC6613-3标准。下图为M226ES运动控制型PLC的运动控制指令列表,指令逻辑完全符合PLCopen运动控制指令标准。

        介绍完了CPU之后就进入本文的主题,本文通过Snap7 开源库访问S7-200PLC MB存储区数据,并进行数据交互。有关snap7环境的搭建已经在上文中做了详细的介绍。感兴趣的可以到一下地址进行浏览。

https://blog.csdn.net/lzc881012/article/details/135345037?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/lzc881012/article/details/135345037?spm=1001.2014.3001.5502        将上文例程C++代买改为如下图所示,同时读取S7-1200PLC DB块和M226ES MB存储区数据。M226ES存储区数据起始地址为MB500,读取数量为100个Byte。


#include <iostream>
#include"snap7.h"
#include <ctime> 

using namespace std;

unsigned char Snap7Rcv[100];
unsigned char Snap7RcvM226Es[100];
TS7Client* mClient;
void mSnap7GetDataFromS71200Db()
{
    mClient = new TS7Client;
    mClient->ConnectTo("192.168.2.202", 0, 1);
    mClient->DBRead(9,0,100,&Snap7Rcv);
    delete mClient;
}

void mSnap7GetDataFromM226EsMbBlock()
{
    mClient = new TS7Client;
    mClient->ConnectTo("192.168.2.201", 0,0);
    mClient->MBRead(500,100, &Snap7RcvM226Es);
    delete mClient;
}
void  Delay(int time)
{
    clock_t now = clock();
    while (clock() - now < time);
}
int main()
{
    while (true)
    {
        mSnap7GetDataFromS71200Db();
        mSnap7GetDataFromM226EsMbBlock();
        Delay(1000);
        for (int i = 0; i < 100; i++)
        {
            cout << "mSnap7GetDataFromS71200Db-Snap7DB.Snap7Byte" << "[" << i << "]" << "="  << (int)Snap7Rcv[i] << endl;
            cout << "mSnap7GetDataFromS71200Db-Snap7MB.MB" << "[" << 500 + i << "]" << "=" << (int)Snap7RcvM226Es[i] << endl;
        }
    }
   
}

MagicWorksplc中可以看到PLC的机架号和槽位号。如下图所示。

        本例程除了上位C++软件同时读取S7-1200plc DB数据和M226ES MB存储区数据外,S7-1200还作为从站和M226ES作为主站进行通信,S7-1200作为PN主站和M226ES作为PN从站进行通信,S7-1200和M226ES之间进行UDP通信,本例程包含多种通信同时进行。具体程序如下。UDP通信S7-1200PLC侧也要编写程序。

        TIA硬件组态和UDP通信程序。

在状态表中监控MB500-MB599存储区的数据。如下图所示。

气动C++程序进行数据读取测试,如下图所示可看到Snap7同时读取S7-1200PLC DB块和M226ES PLC MB块数据成功。

相关链接

Snap7:

https://snap7.sourceforge.net/icon-default.png?t=N7T8https://snap7.sourceforge.net/EtherCAT:

https://www.beckhoff.com/en-en/icon-default.png?t=N7T8https://www.beckhoff.com/en-en/PLCOpen:

https://www.plcopen.org/icon-default.png?t=N7T8https://www.plcopen.org/CanOpen:

https://www.can-cia.org/canopen/icon-default.png?t=N7T8https://www.can-cia.org/canopen/Cotrust:

https://www.co-trust.com/Company/Idea/index.htmlicon-default.png?t=N7T8https://www.co-trust.com/Company/Idea/index.htmlSiemens:

https://www.siemens.com/cn/zh.htmlicon-default.png?t=N7T8https://www.siemens.com/cn/zh.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/287551.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

以爱之名,与“EYE”同行 蔡司光学公益行一直在路上

用心传递公益温暖之力&#xff0c;助力更多乡村学童拥有光明未来。2023年12月26日&#xff0c;一场以“EYE”为主题的公益活动正在中卫市宣和镇东台小学举办。本次&#xff0c;眼视光领域领军品牌蔡司光学携手中卫德明眼科的专业视光团队一同来到活动现场&#xff0c;为该校全体…

C++八股学习心得.2

1.C常量 常量是固定值&#xff0c;在程序执行期间不会改变。这些固定的值&#xff0c;又叫做字面量。 常量可以是任何的基本数据类型&#xff0c;可分为整型数字、浮点数字、字符、字符串和布尔值。 常量就像是常规的变量&#xff0c;只不过常量的值在定义后不能进行修改。 …

C# 语法进阶 委托

1.委托 委托是一个引用类型&#xff0c;其实他是一个类&#xff0c;保存方法的指针 &#xff08;指针&#xff1a;保存一个变量的地址&#xff09;他指向一个方法&#xff0c;当我们调用委托的时候这个方法就立即被执行 关键字&#xff1a;delegate 运行结果&#xff1a; 思…

第二证券:停牌意味着什么?

股票停牌的原因&#xff1f; 一般来说&#xff0c;股票停牌的原因可以分为以下几类&#xff1a; 1、上市公司有严峻情况变化&#xff0c;如企业并购、重组等&#xff0c;为了确保生意顺利完成和信息宣布的及时、充分、准确&#xff0c;避免商场出现信息不对称的情况&#xff…

喜报 | 群策群力,奋战半年 ! 钡铼技术顺利通过ISO9001质量管理体系认证

在这个中秋和国庆双节同庆的时刻之后&#xff0c;我想借此机会宣布一个好消息。钡铼技术已成功通过ISO 9001质量管理体系的认证啦。ISO 9001是全球范围内广泛应用的质量管理体系认证&#xff0c;具有极高的含金量和国际认可度。这一认证对公司的质量管理、环境保护和员工健康安…

软件工程期末总结

软件工程期末总结 软件危机出现的原因软件生命周期软件生命周期的概念生命周期的各个阶段 软件开发模型极限编程 可行性研究与项目开发计划需求分析结构化分析的方法结构化分析的图形工具软件设计的原则用户界面设计结构化软件设计面向对象面向对象建模 软件危机出现的原因 忽视…

P38[11-3]软件SPI读写W25Q64

接线演示及解释: CS片选,接PA4 DO从机输出,接PA6 CLK时钟,接PA5 DI从机输入,接PA7 主机:时钟(CLK,PA5),主机输出(DI,PA7),片选(CS,PA4)引脚均为推挽输出 主机输入(DO,PA6)为上拉输入 第一行显示ID号,分别是厂商ID和设备ID 第二行是写的数据内容 第二行是读的数据内…

2487. 从链表中移除节点

使用栈&#xff0c;依次出栈判断连接 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.…

python算法问题,求两个字符串的最长公共子序列长度

对于问题&#xff0c;两个字符串的最长公共子序列长度进行求解&#xff0c;首先要知道子序列的定义&#xff0c;如果说给定一个字符串&#xff0c;对这个字符串中的原有字符进行不改变字符相对位置的删除&#xff0c;这里的相对位置就是处于前还是后的相对关系&#xff0c;进行…

中文自然语言处理库(SnowNLP)的简单使用

snownlp 是一个简单易用的 Python 库&#xff0c;专为处理中文文本而设计。它基于自然语言处理技术&#xff0c;提供了多种功能&#xff0c;包括分词、词性标注、情感分析、文本转换&#xff08;简繁转换&#xff09;等。这个库的核心优势在于对中文文本的处理能力&#xff0c;…

软性演员-评论家算法 SAC

软性演员-评论家算法 SAC 软性演员-评论家算法 SAC优势原理软性选择模型结构目标函数重参数化熵正则化代码实现 软性演员-评论家算法 SAC 优势原理 DDPG 的问题在于&#xff0c;训练不稳定、收敛差、依赖超参数、不适应复杂环境。 软性演员-评论家算法 SAC&#xff0c;更稳定…

基于ssm的资产管理信息系统+vue论文

摘要 当下&#xff0c;正处于信息化的时代&#xff0c;许多行业顺应时代的变化&#xff0c;结合使用计算机技术向数字化、信息化建设迈进。以前企业对于资产信息的管理和控制&#xff0c;采用人工登记的方式保存相关数据&#xff0c;这种以人力为主的管理模式已然落后。本人结…

我用 Python 自动生成图文并茂的数据分析报告

reportlab是Python的一个标准库&#xff0c;可以画图、画表格、编辑文字&#xff0c;最后可以输出PDF格式。它的逻辑和编辑一个word文档或者PPT很像。有两种方法&#xff1a; 1&#xff09;建立一个空白文档&#xff0c;然后在上面写文字、画图等&#xff1b; 2&#xff09;建…

【设计模式-2】原型模式的原理、代码实现及类图展示

我们一定对类的实例化比较熟悉&#xff0c;前面我们说的单例、还有3种工厂模式都是通过new关键字来创建对象&#xff0c;下面我们来了解一种新的对象创建的方式。 1. 定义 原型模式也是一种创建型的设计模式&#xff0c;实现和原理总体比较简单&#xff0c;一句话总结呢&#…

帮企10合一万能分销商城源码系统:全开源可二开,全端覆盖+完整的代码包以及搭建教程

电商市场的竞争日益激烈&#xff0c;越来越多的企业开始意识到分销商城的重要性。然而&#xff0c;市面上的分销商城系统往往存在着功能单一、扩展性差等问题&#xff0c;无法满足企业的多样化需求。今天来给大家分享一款10合一万能分销商城源码系统。 以下是部分代码示例&…

MYSQL二主二从集群部署

目录 一、环境描述 二、安装mysql 2.1 卸载mysql(如果没安装过&#xff0c;可忽略) 2.1.1 列出安装的mysql 2.1.2 卸载mysql 2.1.3 删除mysql文件目录 2.1.3.1 查看mysql 目录 2.1.3.2 依次删除 2.2 在线安装 2.2.1 下载安装源 2.2.2 安装源rpm 2.2.3 加入rpm密钥 …

西安人民检察院 | OLED翻页查询一体机

产品&#xff1a;55寸OLED柔性屏 项目时间&#xff1a;2023年12月 项目地点&#xff1a;西安 在2023年12月&#xff0c;西安人民检察院引入了OLED翻页查询一体机&#xff0c;为来访者提供了一种全新的信息查询方式。 这款一体机采用55寸OLED柔性屏&#xff0c;具有高清晰度、…

虚幻UE 材质-进阶边界混合之WAT世界对齐纹理

边界混合前篇&#xff1a;虚幻UE 材质-边界混合之PDO像素深度偏移量 上一篇主要讲材质相似或者不同的两个物体之间的边界混合 这一篇主要讲自建材质且相同的两个物体之间的边界混合 文章目录 一、世界对齐纹理二、世界对齐纹理实验1、制作材质 三、进一步优化 一、世界对齐纹理…

25计算机专业考研经验贴之准备篇

Hello各位小伙伴&#xff0c;大家新年好&#xff01; 马上就要进入寒假假期了&#xff0c;25考研也该提上日程了。今天先跟大家分享一下大家在假期可以先做起来的准备工作。 【选择学校】 择校是个非常重要的内容&#xff0c;因为不同学校的考试内容是不一样的&#xff0c;有些…

免费SSL证书:为你的网站安全护航

SSL证书作为保障网站安全的重要工具&#xff0c;其价值不言而喻。然而&#xff0c;许多人对SSL证书望而却步&#xff0c;因为其高昂的价格让人望而生畏。但现在&#xff0c;我们为您带来了福音——免费SSL证书&#xff01;让您轻松实现网站安全&#xff0c;无惧网络威胁。 一、…