翼度科技»论坛 编程开发 .net 查看内容

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

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
前言
本文介绍了如何使用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.exe3.西门子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的配置流程:(1)Advanced V3.0支持仿真的类型只有S7-1500和smart200的PLC,别的型号暂不支持,但是原理一致;(2)通讯的模式选择Local;(3)模拟器中的IP地址设定为模拟的PLC的IP地址;
(4)设定完成之后,点击Start按钮;
 (5)模拟PLC正常启动,Active PLC中会显示PLC状态,此时为黄灯长亮(因为没有打开博图软件初始化PLC,初始化之后会变成绿灯长亮),至此PLCSIM Advanced配置完成;
 

2.TIA Portal V15软件的配置流程:
(1)创建新项目

(2)添加新设备(S7-1500的CPU均可)

(3)右键项目名称(S7TestVer)进入属性窗口,在保护中勾选“块编译时支持仿真”;

(4)右键设备名称(PLC_1)进入属性窗口,在 防护与安全 -- 连接机制 中勾选“允许来自远程对象的PUT/GET通信访问”,同时需要检查访问级别,选择该PLC的存取等级;

(5)右键程序块进入添加新块窗口,选择数据块(DB块)确认命名后点击确定;

(5)右键BD01块进入属性窗口,选择属性,取消勾选“优化的块访问”;

(6)双击DB01块,添加内容,用于后续测试;

(7)编译并下载参数到模拟PLC,下载时会提示先搜索PLC,完成后下载参数即可;

 (8)下载完成后,可以看到Active PLC中显示的PLC状态为绿灯,至此PLC配置完成;

3.C#上位机的程序测试:
  1. 1 Plc S71500 = new Plc(CpuType.S71500,"192.168.0.1",0,1);
  2. 2 public Form1()
  3. 3 {
  4. 4     InitializeComponent();
  5. 5 }
  6. 6
  7. 7 private void btn_Comm_Click(object sender, EventArgs e)
  8. 8 {
  9. 9     if (S71500.IsConnected)
  10. 10     {
  11. 11         btn_Comm.BackColor = Color.Gray;
  12. 12         S71500.Close();
  13. 13         btn_Comm.Text = "未建立链接";
  14. 14     }
  15. 15     else
  16. 16     {
  17. 17         S71500.Open();
  18. 18         btn_Comm.BackColor = Color.Green;
  19. 19         btn_Comm.Text = "已连接";
  20. 20     }
  21. 21 }
  22. 22
  23. 23 private void btn_Read_Click(object sender, EventArgs e)
  24. 24 {
  25. 25     if ((bool)S71500.Read("DB1.DBX0.0"))
  26. 26     {
  27. 27         txb_Bool.Text = "1";
  28. 28     }
  29. 29     else
  30. 30     {
  31. 31         txb_Bool.Text = "0";
  32. 32     }
  33. 33 }
  34. 34
  35. 35 private void btn_Write_Click(object sender, EventArgs e)
  36. 36 {
  37. 37     if (txb_Bool.Text == "1")
  38. 38     {
  39. 39         S71500.Write("DB1.DBX0.0", 1);
  40. 40     }
  41. 41     else
  42. 42     {
  43. 43         S71500.Write("DB1.DBX0.0", 0);
  44. 44     }
  45. 45 }
复制代码


来源:https://www.cnblogs.com/Jerry9521/p/18152715
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

x
来自手机

举报 回复 使用道具