西门子prodave6.0在c#中地应用

西门子prodave6.0在c#中地应用

ID:35940743

大小:344.00 KB

页数:16页

时间:2019-04-26

西门子prodave6.0在c#中地应用_第1页
西门子prodave6.0在c#中地应用_第2页
西门子prodave6.0在c#中地应用_第3页
西门子prodave6.0在c#中地应用_第4页
西门子prodave6.0在c#中地应用_第5页
资源描述:

《西门子prodave6.0在c#中地应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实用文案     最近在做一个数据采集项目,涉及到许多与西门子S7系列PLC的通信,由于自己的VC水平属于半瓶子晃荡,所以就想利用C#来进行开发(个人比较喜欢C#的代码风格,看着很清爽),虽然C#这种高级语言与底层的设备通讯效率确实不如C++,但好在数据量不大,实时性要求不算太高,用C#还是可以应付的。在界面开发方面,高级语言确实不如WinCC,Intouch之类的组态软件,但在数据处理上面,却有很大的灵活性。     在这里很感谢吴向阳,在中国工控网上面发现了他的文章,因为我是从C#转到工控方向的

2、,以前对PLC一点都不懂,刚接触这一行时,学习起来很吃力,看了他的这篇文章,让我对PLC的有了更加深入的了解。我的这个DCProdave.cs就是在他的基础上修改的,加了一些自己的东西。还望各位多多提意见,多多交流!Prodave版本:PRODAVE6.0-W95_S7.DLLPLC模拟环境:PLCSIMV5.4开发环境:VS.NET2005一.从w95_s7.dll中导入PLC通讯函数的方法[DllImport]在使用DllImport之前,必须引入InteropServices,代码如下:usi

3、ngSystem.Runtime.InteropServices;具体使用方法可以参考我的博客中转载的一篇文章《C#(.net)中的DllImport用法[转] 》写的很不错,千万要注意C++数据类型到C#的对应关系,选用合适的类型。比如char* 可以用string来转换,指针类型可以ref 或者数组。二.定义结构体类型2.1PLC连接参数结构体1//定义结构体[连接PLC所需参数]2public struct PLCConnParam 3{4    public byte Addres;    

4、       // 定义CPU的MPI/DP地址标准文档实用文案5    //public byte SegmentId;   // 保留为06    public byte Rack;             // 定义CPU的机架号7    public byte Slot;              // 定义CPU的槽号8}2.2PLC存储区域类别编号 1//定义枚举类型[PLC的存储区域编号] 2public enum PLCBlockType 3{ 4    I = 1, //Input

5、 bytes 5    Q = 2, //Output bytes 6    M = 3, //Flag bytes 7    T = 4, //Timer words 8    Z = 5, //Counter words 9    D = 6, //Data from DB10}三.常用函数详细讲解3.1建立PLC连接函数     首先从W95_S7.DLL中导入连接函数,访问权限为私有,C#将会对此函数进行封装,供外部调用,稍后讲解.1/**//// 

与PLC建立连接,该函数

6、必须在其他所有函数调用之前被调用2/// 

3/// 连接数,在DOS,WIN3.1最多可以有4个,在WIN95以上最多可以有16个标准文档实用文案4/// 与PLC通讯的设备名称,一般为S7ONLINE5/// 参数列表,4个值分别为MPI/DP地址,保留值=0,槽号,机架号6/// 0正常返

7、回,非0为错误号7[DllImport("w95_s7.dll")]8private extern static int load_tool(byte nr, string device, byte[,] adr_table);说明:     在一个MPI/DP网络中若有多个PLC时,可指定多个连接列。最后一列的所有参数须置0,以标志参数列结束。例如一个MPI/DP网中有两个PLC,他们的MPI地址分别为2和3,槽号均为2,机架号均为0,则可按如下方式调用:byte[,]ba={

8、{2,0,2,0},{3,0,2,0},{0,0,0,0}}; interr=load_tool(1,"s7online",ba);返回值为int型,如果返回0则表示执行成功,非零值,则需要根据错误号查找到错误具体信息,具体参照本文第五部分:错误代码字典     当然如果PLC使用的是DP网络时,只需要将SetPG/PCInterface中接口参数分配选为PLCSIM(PROFIBUS)即可,Prodave不需要做任何修改(当然PLC地址肯定也是DP口的地址哦),具体

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。