PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 72|回复: 0

[西门子] C#S7.NET实现西门子PLCDB块数据采集的完整步骤

[复制链接]
发表于 2024-4-26 18:59:52 | 显示全部楼层 |阅读模式
前言


本文介绍了如何使用S7.NET库实现对西门子PLC DB块数据的读写,记录了使用计算机仿真,模拟PLC,自至完成测试的详细流程,并重点介绍了在这个过程中的易错点,供参考。


正文


用到的软件
1、Windows环境下链路层网络访问的行业标准工具(WinPcap_4_1_3.exe)
链接:https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe
2、模拟西门子PLC的软件(SIMATIC_PLCSIM_Advanced_V3_Upd1.exe)
链接:https://support.industry.siemens.com/cs/attachments/109772889/SIMATIC_PLCSIM_Advanced_V3.exe
3、西门子PLC编程软件博图,用来编辑DB块等操作,提供测试环境(TIA_Portal_STEP_7_Pro_WINCC_Pro_V15)
链接:https://pan.baidu.com/s/1O4ndJKFKJKJcMQxLBM7P6Q?pwd=c8ht提取码:c8ht
下载完后需要激活,可自行搜索
软件安装流程:请按上面软件1-3依次安装,可以避开很多问题点。
配置流程
1、S7-PLCSIM Advanced V3.0 Upd1的配置流程
Advanced V3.0支持仿真的类型只有S7-1500和smart200的PLC,别的型号暂不支持,但是原理一致;
通讯的模式选择Local;
模拟器中的IP地址设定为模拟的PLC的IP地址;
设定完成之后,点击Start按钮;
模拟PLC正常启动,Active PLC中会显示PLC状态,此时为黄灯长亮(因为没有打开博图软件初始化PLC,初始化之后会变成绿灯长亮),至此PLCSIM Advanced配置完成;
2、TIA Portal V15软件的配置流程
创建新项目
添加新设备(S7-1500的CPU均可)
右键项目名称(S7TestVer)进入属性窗口,在保护中勾选“块编译时支持仿真”;
右键设备名称(PLC_1)进入属性窗口,在 防护与安全 -- 连接机制 中勾选“允许来自远程对象的PUT/GET通信访问”,同时需要检查访问级别,选择该PLC的存取等级;
右键程序块进入添加新块窗口,选择数据块(DB块)确认命名后点击确定;
右键BD01块进入属性窗口,选择属性,取消勾选“优化的块访问”;
双击DB01块,添加内容,用于后续测试;
编译并下载参数到模拟PLC,下载时会提示先搜索PLC,完成后下载参数即可;
下载完成后,可以看到Active PLC中显示的PLC状态为绿灯,至此PLC配置完成;
3、C#上位机的程序测试

Plc S71500 = new Plc(CpuType.S71500,"192.168.0.1",0,1);
public Form1()
{
    InitializeComponent();
}

private void btn_Comm_Click(object sender, EventArgs e)
{
    if (S71500.IsConnected)
    {
        btn_Comm.BackColor = Color.Gray;
        S71500.Close();
        btn_Comm.Text = "未建立链接";
    }
    else
    {
        S71500.Open();
        btn_Comm.BackColor = Color.Green;
        btn_Comm.Text = "已连接";
    }
}

private void btn_Read_Click(object sender, EventArgs e)
{
    if ((bool)S71500.Read("DB1.DBX0.0"))
    {
        txb_Bool.Text = "1";
    }
    else
    {
        txb_Bool.Text = "0";
    }
}

private void btn_Write_Click(object sender, EventArgs e)
{
    if (txb_Bool.Text == "1")
    {
        S71500.Write("DB1.DBX0.0", 1);
    }
    else
    {
        S71500.Write("DB1.DBX0.0", 0);
    }
}
转自:yangbe1
链接:cnblogs.com/Jerry9521/p/18152715
- EOF -
推荐阅读  点击标题可跳转.NET 开源 EF Core 批处理扩展工具,真香
DDD领域驱动设计总结和C#代码示例太方便了,开源的 .NET Core 打包工具
看完本文有收获?请转发分享给更多人
推荐关注「DotNet」,提升.Net技能
点赞和在看就是最大的支持❤️


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-5-7 23:40 , Processed in 0.048799 second(s), 26 queries .

快速回复 返回顶部 返回列表