在连接过程中出现,虽然可以成功连接PLC,但是无法读取数据的问题。读PLC报异常。
1、首先说下报的异常
(1)S7.Net.PlcException: 无法将数据写入传输连接: 远程主机强迫关闭了一个现有的连接
(2)索引超出范围,请重新输入!

针对第一个报的异常,很明显是一个硬件问题,但是由于对PLC不熟悉,捣鼓了很久。。终于在一个配置文件中找到了问题。
需要博图进行以下设置:
配置博图TIA

  1. 首先在博图TIA查看PLC的属性

    Rack =0
    Slot=1

2)查看权限
设置完全权限

3)勾选 允许来自远程对象的PUT/GET通讯访问

4)读取DB数据时必须改DB块的属性,去掉优化的块访问的勾选项

在bin文件夹debug,config文件打开配置PLC IP地址,CPU 的信息
修改配置文件
如下:

IP=192.168.0.1   //PLC IP地址
Rack=0          //PLC 机架
Slot=1          //PLC 插槽

对于第二个异常,暂无解答。。。 配置完成以上后,此问题消失不见。。。(有哪位大哥了解此问题,请为小弟解答下。。)

2、如何连接PLC:
首先应将本机电脑的IP地址和PLC在同一个网段里,配置如下:
button1控件为连接PLC
3、连接PLC 程序代码如下:

private void button1_Click(object sender, EventArgs e){//创建PLC对象                                                   //机架                      //机槽S71500 = new Plc(CpuType.S71500, IP_Address.Text, Convert.ToInt16(Rack.Text),Convert.ToInt16(Slot.Text));S71500.OpenAsync().Wait(2000);if (S71500.IsConnected){button1.Enabled = false;button2.Enabled = true;Read_Data.Enabled = true;Write_Data.Enabled = true;textBox1.Text = "已连接到PLC";}elsetextBox1.Text = "PLC 连接不成功,请检查IP地址、机架、插槽等是否正确";}

断开连接代码:

 private void button2_Click(object sender, EventArgs e){//调用S7.NET中的方法断开PLCS71500.Close();//断开成功后使能操作按钮if (!S71500.IsConnected){button1.Enabled = true;button2.Enabled = false;Read_Data.Enabled = false;Write_Data.Enabled = false;textBox1.Text = "PLC断开成功";}elsetextBox1.Text = "PLC断开不成功";}

读PLC程序代码:

        private void Read_Data_Click(object sender, EventArgs e){int Data_Type_Value = 0;if (Data_Type.Text == "Bool") Data_Type_Value = 1;else if (Data_Type.Text == "Int") Data_Type_Value = 2;else if (Data_Type.Text == "DInt") Data_Type_Value = 3;else if (Data_Type.Text == "Real") Data_Type_Value = 4;else if (Data_Type.Text == "String") Data_Type_Value = 5;else Data_Type_Value = 0;switch (Data_Type_Value){case 1:try{ Current_Value.Text = Convert.ToString(S71500.Read(DataType.DataBlock,Convert.ToInt16(DB_Number.Text), Convert.ToInt16(Start_Address.Text), VarType.Bit, Convert.ToInt16(Length.Text), 0));}catch { MessageBox.Show("索引超出范围,请重新输入!"); }break;case 2:try{Current_Value.Text = Convert.ToString(S71500.Read(DataType.DataBlock,Convert.ToInt16(DB_Number.Text), Convert.ToInt16(Start_Address.Text), VarType.Int, Convert.ToInt16(Length.Text), 0));}catch { MessageBox.Show("索引超出范围,请重新输入!"); }break;case 3:Current_Value.Text = Convert.ToString(S71500.Read(DataType.DataBlock,Convert.ToInt16(DB_Number.Text), Convert.ToInt16(Start_Address.Text), VarType.DInt, Convert.ToInt16(Length.Text), 0));break;case 4:Current_Value.Text = Convert.ToString(S71500.Read(DataType.DataBlock,Convert.ToInt16(DB_Number.Text), Convert.ToInt16(Start_Address.Text), VarType.Real, Convert.ToInt16(Length.Text), 0));break;case 5:Current_Value.Text = Convert.ToString(S71500.Read(DataType.DataBlock,Convert.ToInt16(DB_Number.Text), Convert.ToInt16(Start_Address.Text), VarType.String, Convert.ToInt16(Length.Text), 0));break;default: break;}}

使用C#引用S7.Net.dll 连接西门子1500PLC 报异常,相关推荐

  1. VB.NET使用S7.NET.dll连接西门子PLC200、200smart、300、400、1200

    VB.NET使用S7.NET.dll连接西门子PLC200smart.300.400.1200 由于我之前上传的一个西门子PLC的测试工具(学习PLC初期网上下载的测试工具)被大家下载好多次,于是在这 ...

  2. 解决:远程连接mysql:报异常,1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘

    解决:使用Navicat远程连接,Docker中的mysql8时报异常,:1044 - Access denied for user 'root'@'%' to database 'gulimall_ ...

  3. 西门子S7.Net.dll

    1.C#使用S7.Net.DLL连接PLC,读写数据[https://download.csdn.net/download/hjsbbt/12044882?utm_source=iteye_new] ...

  4. Java使用S7协议连接西门子PLC1200、1500

    Java使用S7协议连接西门子PLC1200.1500 1.引入s7包 2.测试代码(可参考使用) 1.引入s7包 使用 https://github.com/s7connector/s7connec ...

  5. 通过S7协议或opc协议远程连接西门子模拟器

    通过S7协议或opc协议远程连接西门子模拟器 1.环境准备 安装博途 下载:Nettoplcsim,https://sourceforge.net/projects/nettoplcsim/ 2.博途 ...

  6. mysql c 驱动dll_C#调用MySQL数据库(使用MySql.Data.dll连接)mysql-connector-net-6.10.4.msi

    下载地址:http://dev.mysql.com/downloads/connector/net/ 安装指导 1.安装:mysql-connector-net-6.10.4.msi 其下载地址:ht ...

  7. Softing edgePlug Docker容器产品连接西门子工业边缘

    Softing edgePlug产品系列的首批连接产品可在西门子工业边缘市场(Siemens Industrial Edge Marketplace)上进行购买. (Softing edgePlug ...

  8. C#(vs2022社区免费版)调用MySQL数据库(使用MySql.Data.dll连接)

    今天需要用C#访问MySQL, 我的vs版本是vs2022社区免费版, MySQL版本是mysql-installer-community-5.7.28.0, 网上搜教程,一般都说有3种,我选择了My ...

  9. 当引用com类dll时,在VS2005下会出现,dll虽然更换了但是引用没有更换或找不到的错误

    当引用com类dll时,在VS2005下会出现,dll虽然更换了但是引用没有更换或找不到的错误 处理办法: 打开*.vbProj文件找到最后一个<ItemGroup>,添加或更改<C ...

最新文章

  1. python执行linux命令返回结果_Python中调用Linux命令并获取返回值
  2. Windows Server2008安装mysql5.6出现程序无法正常启动(0xc000007b)
  3. Python中的MySQL数据库编程
  4. server 群辉emby_群晖容器中搭建支持硬件编码的Emby Server教程及注意事项
  5. 前沿 | NVIDIA PyTorch库让3D深度学习研究更简单!
  6. 蚂蚁集团CEO胡晓明宣布辞任
  7. pytorch框架快速测试你的模型结构是否存在问题并得到输出形状
  8. PIC单片机软件平台----MPLAB IDE和MPLAB X IDE
  9. Matlab机器学习入门(一)
  10. 什么是超级浏览器?目前超级浏览器有哪些分类?
  11. SOA、网格计算、云计算与P2P技术
  12. 2022-2028全球造水机市场现状及未来发展趋势
  13. MATLAB凸优化工具箱CVX用户手册-Chapter5
  14. 压力测试软件 loadr,初学abench压力测试 - 玄大冰 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  15. 从招聘信息来看,小米、爱奇艺、360甚至芒果TV都要做VR了
  16. python 列表嵌套字典 添加修改删除_python3--字典,字典的嵌套,概念:分别赋值
  17. Linux bash 数组 for循环遍历
  18. 再读杨绛_RWERWERWE_96921_新浪博客
  19. ms office 2007 vs 2012
  20. 人体骨骼关键点检测AP值AP@s

热门文章

  1. #力扣 LeetCode461. 汉明距离 #在所有 Java 提交中击败了 100.00% 的用户 @FDDLC
  2. 推荐系统-用户标签预测算法基础实践-决策树(一)
  3. 八种提升薪酬激励的艺术(转)
  4. matlab/simulink汽车带可变阻尼的半主动悬架系统模型
  5. The order of a Tree(模拟BST的建树和访问)
  6. uniapp实战项目 (仿知识星球App) - - 利用computed监听用户操作
  7. C/C++内存问题检查利器—Purify (三)
  8. 玩游戏学前端——颜色您了解多少?
  9. 【校内模拟】【18-10-16】长者 【主席树】【哈希】
  10. windows10永久禁用驱动强制签名