6DD1611-0AF0西门子代理商

6DD1611-0AF0西门子代理商

发布商家
湖南西控自动化设备有限公司
联系人
徐嘉泉(先生)
职位
经理
手机
17838383235

如何用C#编写程序读写西门子PLC?

图片

S7.NET介绍

S7.NET是一个C#编写的,以太网连接西门子带有Profinet接口CPU的dll驱动库,官方文件介绍可连接S7-200、S7-300、S7-400、S7-1200、S7-1500(经本人测试,也可连接S7200 SMART)。



图片

S7.NET使用问题说明:(本人踩过的坑,写给大家借鉴一下)

1、连接S7200 SMART需使用S71200、S71500驱动都可以。

2、读写S7200或S7200 SMART的V区数据时,DB块号需设置为1。

3、使用中发现下面两个bug:

public object Read(DataType dataType, int db, int startByteAdr, VarType varType, int varCount)

public ErrorCode Write(DataType dataType, int db, int startByteAdr, object value)

上述两个函数无法完成位操作,请使用其他函数代替。

该函数在读取DInt(32位有符号整型)数据时出现问题,读取不了负数,负数时,值始终为-2147483648。


4、本程序中一次仅读取1个数据,实际应用中请按照S7.NET文档修改!


图片

测试环境说明:

1、连接S7200 SMART:

测试硬件:CPU SR20,自带以太网接口


2、连接S7-200:(因该系列CPU无以太网接口,需外接模块,如:西门子CP243-1,大连德嘉CP243u、ETH-ibus等)

测试硬件:S7-200 CPU226 CN + 大连德嘉CP243u模块(西门子CP243-1设置太麻烦,这里用CP243u代替,协议都一样)。


3、连接S7-300:(该系列PLC也多数不带以太网口,需外接模块,如CP343-1、大连德嘉ETH-MPI(Plus)等)

测试硬件1:CPU 314 + ETH-MPI(Plus) (同上,CP343-1设置同样麻烦,这里用ETH-MPI(Plus)代替,协议一样)

测试硬件2:CPU315-2PN/DP,自带以太网接口


4、连接S7-1200:

测试硬件:CPU 1214C AC/DC/Rly


5、连接S7-1500:

测试硬件:CPU 1511-1PN


6、连接S7-400:未经测试,鄙人手上无S7-400 CPU,如有哪位帮忙测试,请告知结果(请给出详细硬件说明)。


图片

下面是PLC建立连接部分代码片段:

建立连接:



读函数:





写函数:




这里有一条非常重要的设置,之前忘记了,现在补上:如下图,1500或者1200编程的时候下图两个地方需要注意:



读写DB块的话下面这两个地方需要设置一下:






人气
4
发布时间
2024-05-14 10:53
所属行业
PLC
编号
41091822
我公司的其他供应信息
相关西门子产品
17838383235