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简介

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

        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
      1ms 36
      10ms 752
      100ms 1260
计数器 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) 1000 800 500 250 150 50 20
最大长度(m) 25 50 100 250 500 1000 2500
最大站地址 127
站点地址范围 1-127
最大主站带从站数 32
配置方式 CAN组态块和EDS文件
最大数字量访问 普通IO CANopen专用IO
字节数 内存起始地址 字节数 内存起始地址
输入 16 IB0 输入 64 IB16
输出 16 QB0 输出 64 QB16
最大模拟量访问 普通IO CANopen专用IO
通道数 内存起始地址 通道数 内存起始地址
输入 32 AIW0 输入 162 AIW64
输出 32 AQW0 输出 162 AQW64
集成通信功能(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的基本界面和功能,包括硬件组态、通信调试、向导功能等,几乎和西门子编程软件一模一样。

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

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

M226ES 运动控制功能简介

        

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

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

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

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

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

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

        介绍完了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 
#include"snap7.h"
#include  

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++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法_第8张图片

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关链接

Snap7:

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

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

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:

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

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

你可能感兴趣的:(C++,MFC,c++,mfc,microsoft,visual,studio,windows)