叶帆工作室

嵌入式开发爱好者(十年开发经验,精通C/C++/VC/VB/C#...)

用户操作
[即时聊天] [发私信] [加为好友]
刘洪峰ID:yefanqiu
534330次访问,排名80(1)好友0人,关注者217
微软MVP / CSDN 2008十大MVB/MSDN中文技术论坛版主
yefanqiu的文章
原创 218 篇
翻译 0 篇
转载 3 篇
评论 1099 篇
叶帆的公告
本博客原创文章,作者保留一切权利,需经作者同意后方可转载,转载时 请注明[叶帆工作室]及文章链接。yefan@vip.sina.com
【简介】叶帆[微软MVP]
【文章】叶帆文章列表
【软件】叶帆共享软件列表
最近评论
BinYu:我用的是vista home basic sp1,但vs2005强行装不上去,请帮忙分析一下,qq:811344767,先谢谢了
wjh6877:算法想好了吗?

没有就是空话
一生好人:其实我也想来正版,但生活逼人,没办法啊
fox23:something like java card;-)
wwqqha:不错不错
文章分类
收藏
    相册
    叶帆照片
    【叶帆软件】
    [01]VB源码之友(V2.1.548)
    [02]API浏览器.net(V5.0)
    [03]叶帆成语词典(V2.0.8)
    [04]叶帆密码库(V1.2.8)
    【叶帆资源】
    DAO 2.0引擎
    叶帆快速通道
    MSDN-MVP
    Windows Embedded 专题
    中文MSDN
    叶帆圈子--工业自动化
    叶帆工作室(博客园)
    叶帆工控--工业自动化
    叶帆群组--工业应用开发
    微软中文技术论坛
    微软硬件创新中心(HIC)
    瑞康社区论坛
    叶帆友情链接
    张欣
    枕善居
    莫依
    葛涵涛
    郑建
    陈辉
    马宁
    马骐
    魏涛序
    黎波
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 西门子Softnet驱动的成功开发收藏

    新一篇: MFC--CByteArray的方法SetAtGrow的BUG | 旧一篇: YFIOServer 后台IO接口使用说明

    前段时间用西门子提供的Prodave5.5开发了基于YFIOServer的驱动程序,很可惜以太网方式它不支持,所以只好用西门子的softnet来开发相应的驱动了。

    SoftNet的服务程序

    目前采用的是同步方式的读写,可支持自恢复功能。

    (采用异步方式初次读写可以成功,下次在读写时却失败,不是很明白!)

    读写核心代码:

    int fix_field_read(int Addr,int intNum,BYTE *bDataValue,long lngMode,int blockno)
    {
     struct S7_READ_PARA read_para;
     int32 iRet;
     ord16 orderid=0;
     long lngTimeNum=0;
     long lngOK=1;
       
     read_para.access=S7_ACCESS_SYMB_ADDRESS;
        switch(lngMode)
     {
     case MODE_I:
      sprintf(read_para.var_name,"IB%d,%d",Addr,intNum);
      break;
     case MODE_Q:
      sprintf(read_para.var_name,"QB%d,%d",Addr,intNum);
      break;
     case MODE_M:
      sprintf(read_para.var_name,"MB%d,%d",Addr,intNum);
      break;
     case MODE_DB:
            sprintf(read_para.var_name,"DB%d,B%d,%d",blockno,Addr,intNum);  
      break;
     }
     //IOF->ShowMessage(1,1,read_para.var_name,"--");
             
     iRet=s7_read_req(cp_descr,cp_cref,0,&read_para);
        if(iRet!=S7_OK)
     {
      //IOF->ShowMessage(1,1,read_para.var_name,"s7_read_req");
            return 1000;
     }   
     do
     {
      iRet=s7_receive(cp_descr,&cp_cref,&orderid);
      switch(iRet)
      {
       case S7_READ_CNF:
        { 
         //--------------------------------             
         if(s7_get_read_cnf(( void *)0,(ord16 *)&intNum,(void *)bDataValue)!=S7_OK)
         {
          return 1001;
         }
                        lngTimeNum=IOD->Overtime+1;
         //----------------------------------
         lngOK=0;
        }
           break;
       default:
        Sleep(1);   //等待1ms
        break;
      }
       
     } while(lngTimeNum++<IOD->Overtime && iRet!=S7_ABORT_IND);
       
     return lngOK;
    }

    int fix_field_write(int Addr,int intNum,BYTE *bDataValue,long lngMode,int blockno)
    {
       
     struct S7_WRITE_PARA write_para;
     int32 iRet;
     ord16 orderid=0;
     long lngTimeNum=0;
     long lngOK=1,i;
       
     write_para.access=S7_ACCESS_SYMB_ADDRESS;
        switch(lngMode)
     {
     case MODE_I:
      return 999;
      break;
     case MODE_Q:
      sprintf(write_para.var_name,"QB%d,%d",Addr,intNum);
      break;
     case MODE_M:
      sprintf(write_para.var_name,"MB%d,%d",Addr,intNum);
      break;
     case MODE_DB:
            sprintf(write_para.var_name,"DB%d,B%d,%d",blockno,Addr,intNum);
         //IOF->ShowMessage(1,1,write_para.var_name,"fix_field_write");
      break;
     }
        write_para.var_length=intNum;
        for(i=0;i<intNum;i++)
     {
           write_para.value[i]=bDataValue[i];
     }
             
     iRet=s7_write_req(cp_descr,cp_cref,0,&write_para,(void *)0);
        if(iRet!=S7_OK)
     {
            //IOF->ShowMessage(1,1,"Error:s7_write_req","fix_field_write");
            return 1000;
     }   
     do
     {
      iRet=s7_receive(cp_descr,&cp_cref,&orderid);
      switch(iRet)
      {
       case S7_WRITE_CNF:
        { 
         //--------------------------------             
         if(s7_get_write_cnf()!=S7_OK)
         {
          return 1001;
         }
                        lngTimeNum=IOD->Overtime+1;
         //----------------------------------
         lngOK=0;
        }
           break;
       default:
        Sleep(1);   //等待1ms
        break;
      }
       
     } while(lngTimeNum++<IOD->Overtime && iRet!=S7_ABORT_IND);
       
     return lngOK;
    }

    注意:I和Q变量不知为什么,读写失败。

    发表于 @ 2006年06月16日 11:42:00|评论(loading...)|编辑

    新一篇: MFC--CByteArray的方法SetAtGrow的BUG | 旧一篇: YFIOServer 后台IO接口使用说明

    评论

    #azha 发表于2006-06-21 12:50:00  IP: 202.120.37.*
    yefan老师:
    您好!我是上海的一名学生,正学习用modbus协议,想在c51上实现和dsp2812的通讯。在网上找资料时,找到了您的blog。呵呵,想找您帮忙,希望您能给我发一份c语言的代码,我好好研究研究。非常感谢,并祝您身体健康,万事如意。
    万章
    email: realcoolazha@sjtu.edu.cn
    #叶帆 发表于2006-06-25 10:44:00  IP: 221.220.133.*
    已发
    #叶帆 发表于2006-06-26 20:13:00  IP: 221.222.58.*
    40多M,用邮箱不大好发
    #genghis 发表于2006-06-26 17:09:00  IP: 58.218.77.*
    叶工你好:
    现在手头一个项目用到pc和s7300的通讯,找了很多资料没有成功。从网上搜索到你的blog。希望你能提供一点帮助。
    你文中提到的prodave能否方便提供一份。是否有更好的建议一起提供。不甚感激。
    如有样例,那太好了!

    genghis 2006.06.26
    #genghis 发表于2006-06-26 17:10:00  IP: 58.218.77.*
    EMAIL:3762355@163.COM
    #genghis 发表于2006-06-27 20:15:00  IP: 58.218.73.*
    王工:
    能否通过分割工具发一下,我的邮箱15兆的附件没有问题的。请帮帮忙,非常感谢。
    如果有时间到徐州,我请客!
    耿锐060627
    QQ243724137
    #叶帆 发表于2006-06-27 22:44:00  IP: 221.222.52.*
    我想你一定安装了S7,则prodave仅有一个W95_s7.dll就可以了,组态王,力控就是这样干的。
    压缩了一下,去掉不必要的东西,7M多一点。这里面包含了一个我用VC开发简单示例,你可以参考一下。
    #genghis 发表于2006-06-28 21:22:00  IP: 58.218.78.*
    非常感谢,以后常联系。我的专业不提也罢。粗略知道一点计算机一点电气一点plc,熟悉各类配料计量系统,能用vb做点工控系统,知道皮带秤和仪表,干过几套采样分析...毕业十年,仍然一无所成,惭愧惭愧。有用得着的地方招呼一下!
    #zry113 发表于2006-07-13 14:39:00  IP: 211.158.7.*
    叶老师:我是重庆一名学生,如果方便的话给我发一份W95_S7.DLL和它的使用方法。我想用VC做一个简单的上位机控制界面,下位机用S7-300。不胜感激!我的邮箱是:baiming6002@sina.com

    #zry113 发表于2006-07-14 09:40:00  IP: 211.158.7.*
    叶老师:邮件收到,感谢你的帮助!
    #leenan 发表于2006-07-18 09:25:00  IP: 59.40.32.*
    叶老师:
    您好,很高兴能看到你的blog。我这有个问题请教您。我现在以rs485作为通信,现在想采用modbus作为通信协议,想用硬件的方式来实现。不知道应怎样着手。您能给些建议和详细的资料么,我现在也在查找。真诚的谢谢您。我的邮箱linanlut2006@163.com
    身体健康!

    余韩
    #叶帆 发表于2006-07-21 18:43:00  IP: 221.217.131.*
    你可以在网上直接下载modbus协议(该协议公开),采用Modbus Rtu和 AscII协议都可以,至于硬件只要能做成标准的rs485接口即可,编程语言不知道你是用汇编还是用C51之类,这点我对硬件没有什么研究,就不知道了。
    #程序人生 发表于2006-07-21 23:07:00  IP: 220.175.235.*
    叶工:
    我在无意中发现您的博客,非常之惊喜.我本身是学计算机的,从最开始的软件开发转行到做工业控制,时间也只有短短几年,您在BLOG中所涉及到的内容让我如获至宝,非常感谢您,真的!非常感谢.同时也非常希望能交到您这样的朋友.
    祝:身体健康,万事如意!
    QQ:37834532
    EMAIL:Shepherd168@tom.com
    #aizhyan 发表于2006-08-30 14:41:00  IP: 218.2.140.*
    叶老师:
    您好,很高兴能看到你的blog。如果方便的话给我发一份W95_S7.DLL和它的使用方法。我想用Vb做一个简单的上位机控制界面,下位机用S7-300。不胜感激!我的邮箱是:aizhyan@126.com

    颜爱忠
    #叶帆 发表于2006-08-30 17:26:00  IP: 221.217.145.*
    你直接在网上搜索prodave 5.5 即可,这是一个开发包,大约50M,网上这类资源很多的。
    #Robert 发表于2006-09-05 16:28:00  IP: 221.239.190.*
    叶老师:很佩服你的技术水平,能否将你的完整代码发一份给我。先谢了!!!
    我的邮箱:fzh94158@164.com或zhaohui.fu@csge.com
    #Robert 发表于2006-09-05 16:34:00  IP: 221.239.190.*
    叶老师:是fzh94158@163.com,不好意思写错了。^_^
    #Robert 发表于2006-09-06 14:39:00  IP: 60.171.18.*
    叶老师:知道你很忙,还请你将7M多的文件发一份给我。多谢!!!
    #tts 发表于2006-10-11 10:07:00  IP: 218.93.117.*
    叶工你好:
    现在手头一个项目用到pc和s7300的通讯,找了很多资料没有成功。从网上搜索到你的blog。希望你能提供一点帮助。
    你文中提到的prodave能否方便提供一份。是否有更好的建议一起提供。不甚感激。我的邮箱是: cztts@163.com
    #叶帆 发表于2006-10-13 20:51:00  IP: 221.217.156.*
    pc和s7300的通信方式有很多种,目前除了MPI(通过适配器)方式可以直接通过纯编程的方式与PLC通信外,其它一般都需要在PC安装西门子的相关软件,比如prodave和西门子net(soft net),prodave是比较老的方式,和softnet相比不支持TCP网络访问PLC,但是prodave使用相对比较简单,不需要太多的配置就可以使用,softnet就比较复杂了,需要配置相应的网络拓扑和设置相应的参数。
    prodave 你可以直接在网上搜索一下,相关程序很多。
    #AlexW 发表于2006-10-26 18:14:00  IP: 202.38.214.*
    叶工:
    你好!我正在做一个关于PC和PLC通讯的项目。我上网找了一下prodave的下载,没找到。能不能麻烦你传一下Prodave和示例程序给我?
    不胜感激!

    我的邮箱是:alexw.wkc@gmail.com
    #叶帆 发表于2006-10-27 09:17:00  IP: 221.217.152.*
    这是工控网自助资料库的资料:
    [PRODAVE 5.5]
    http://s.gongkong.com/download/detail.asp?id=2684
    [PRODAVE使用手册]
    http://s.gongkong.com/download/detail.asp?id=2684
    #叶帆 发表于2006-10-27 09:46:00  IP: 221.217.152.*
    上次网址有误[PRODAVE 5.5]
    http://s.gongkong.com/download/detail.asp?id=928
    #liyigang 发表于2006-11-08 10:22:00  IP: 61.128.195.*
    叶老师你好:向你请教一个红外线方面的问题,我要用VB.NET2003编写一个windows应用程序。通过外部红外适配器实现在两台台式电脑之间实现红外通讯。请问在写程序时需要注意写什么?需要添加什么程序集,我曾今添加了一个system.net.irda程序集,在运行过程中,显示异常是system.net.irda程序集无效,是否是system.net.irda程序集只能在win ce 中才能使用,如果是这样,那写windows应用程序时需要怎样的程序集?希望能得到你的指导。还有你有这方面的资料没有?能否发一点给我参考一下,学习学习。我的邮箱是liyigang_007@163.com .谢谢!






    #叶帆 发表于2006-11-14 08:50:00  IP: 221.217.158.*
    这方面我了解不多,我认为红外口是否可以当作普通的串口来操作,这样就简单多了
    #liyigang 发表于2006-11-14 10:58:00  IP: 61.128.195.*
    谢谢
    #liyigang 发表于2006-11-14 10:58:00  IP: 61.128.195.*
    谢谢!
    #pc 发表于2006-11-17 09:16:00  IP: 221.229.162.*
    叶工:你好,我目前也在用ProDave开发上位机,但有个问题想请教一下,ProDave中的函数好像都是同步执行的,在调用函数期间程序是没有控制权的,比如通过db_read读取数据时,程序有短暂的停滞现象,尤其是数据比较多时这种现象很明显,这对于上位机界面的及时显示及控制很不利,目前我没有找到好的解决办法,不知你是否有好的解决办法
    #叶帆 发表于2006-11-17 20:58:00  IP: 221.217.139.*
    需要开辟一个线程,在线程里执行读写代码。
    #bobo 发表于2006-11-25 13:58:00  IP: 61.149.246.*
    叶工,你好。我现在也遇到PRODAVE 5.5不支持网络的问题。我现在要用普通网卡和CP343-1连接进行通讯。问过西门子的技术支持,他说用PRODAVE 6就可以,它好像支持网络,不过好贵啊,西门子就是抢钱啊。另一种方法是通过OPC方式,网上的资料太乱,看得我直晕。我现在用的语言是VB来。项目现在很急,但是在通讯上我还是没有什么进展,想请叶工帮帮忙,看看有什么好的方法来实现,或者有什么好得资料可以参考一下。万分感谢,谢谢!!!!
    #与非公子 发表于2006-11-27 16:00:00  IP: 121.35.116.*
    你好,我在网上授到叶老师的blog,我现在使用Prodave5.5和VC6升级软件时(以前使用的是Prodave5.0 mini,功能受限),始终不能在VC里面进行调试,执行
    int nRet=m_PLCLib.m_pLoad_Tool(1,"S7ONLINE",m_ATT);时,出现"First-chance exception in PLCTest.exe(NTDLL.DLL):0xC00000008:Invalid Handle",直接运行不会出现问题,但是这样的话我就不能调试软件。请多多指点。
    QQ:44360689
    EMail:lwq_yu@eyou.com
    MSN:lwq_yu@hotmail.com
    #叶帆 发表于2006-11-27 18:34:00  IP: 222.130.249.*
    to bobo:
    我目前用的西门子SoftNet,效果还可以。不过这是我们公司购买了一份SoftNet,你可以在网络里搜索一下。

    to 与非公子:
    估计它的dll是发布版本,不能调试。一般情况下,我都不用中断点调试,通过直接输出调试信息来调试。
    #wujian53 发表于2006-12-22 19:31:39  IP: 59.59.209.*
    你好,我最近可能会做一个pc和s7通讯的程序,以前我都是通过串口和plc打交道,想试试直接和plc打交道,不知道Prodave5.5能不能用现场总线连接,如果你有例子能否提供下载将非常感谢,特别是多PLC联网的例子,非常谢谢,wushaojian@21cn.com
    #wujian53 发表于2006-12-22 19:31:39  IP: 59.59.209.*
    你好,我最近可能会做一个pc和s7通讯的程序,以前我都是通过串口和plc打交道,想试试直接和plc打交道,不知道Prodave5.5能不能用现场总线连接,如果你有例子能否提供下载将非常感谢,特别是多PLC联网的例子,非常谢谢,wushaojian@21cn.com
    #wujian53 发表于2006-12-22 19:51:58  IP:
    呵呵,看了看你的BLOG, 你还招人,我的C++很熟练,现场经验也很不错,7年的工业开发经验,知识很全面,要不要。不过你的开的工资有点低了,我在小城市的国企一年收入都有4.5万,五天工作制\包住,条件不错吧,当地平均收入才1万左右.在北京月3000-6000应该是有点低。我要不是学历差点(我是非专业的,现在也搞编程、工业、网络之类的),也想换一份工作,国企工作7年,很腻了,就像你说的,很多人老是怕教会了徒弟,饿死了师傅,一点点技术就不愿意交给别人,他们不知道开放的思想才会进步,不知道交流会进步。我现在倒是很愿意教新进的大学生,但是阻力很大,我教人还会得罪人,特别是中层的领导,他们只希望这些新人替他们跑跑腿就算了。像我这样,完全靠自学的,呵呵,真不容易,我也在网络发了一个串口类库cnComm,帮助别人是一件很愉快的事,可惜时间不多,不能像你写这么多文章,我的blog才寥寥几篇。
    #wujian53 发表于2006-12-22 19:52:38  IP:
    怎么老是发出两个??
    #wujian53 发表于2006-12-22 20:10:49  IP: 59.59.209.*
    看到你留的连接,下到帮助文件,谢谢,不用麻烦给我代码了。
    #alexmayer 发表于2006-12-30 12:37:41  IP: 121.18.76.*
    吴兄也来了!这位可是我串口编程的启蒙师傅,仰视一下!
    #chenchu7478 发表于2007-01-15 22:15:47  IP: 10.13.31.*
    叶老师:
    我想向您请教有关ProDAVE的函数在C#中的问题.
    [DllImport("W95_S7.dll")]
    public static extern int db_read(int dbno,int dwno,ref int anzahl, ref float bufffer);
    对于其中的ref int anzahl和 ref float bufffer两个参数不是很明白,还有,是不是参数dwnot和anzahl都是以字为单位的,你能举个例子给我讲一下吗?
    我的邮箱:chenchu7478@163.com
    谢谢叶老师,祝身体健康,工作顺利.
    #wyabcdh 发表于2007-01-23 16:14:39  IP: 61.49.125.*
    叶老师你好:
    目前我有一个课题,是关于PC与PLC通信驱动的,利用MPI协议,是不是要按照MPI协议去写,MPI协议公开了吗?
    你所说的目前除了MPI(通过适配器)方式可以直接通过纯编程的方式与PLC通信是什么意思?
    另外还想问一下prodave是组态软件的方式吗?用它通信和自己的纯编程有何区别?
    #yefanqiu 发表于2007-01-24 08:43:18  IP: 222.130.248.*
    MPI是一个比较复杂的协议,西门子没有公开该协议,一般都采用监听的方式获取部分协议。如果你是上位机编码,建议采用prodave,它比较简单,不需知道协议细节,即可实现通信。如果自己编码,不仅需要知道具体的协议,还需要对通信编码有比较深的功底。
    #UlikeLeo 发表于2007-07-07 11:32:34  IP: 220.189.224.*
    叶老师,您好:
    现在正在研究pc和西门子s300的通讯,你文中提到的prodave能否方便提供一份,我是用C#进行开发的在网上下载的w95_s7.dll在win2003系统注册失败,希望能得到您的帮助,有样例就更好.谢谢!
    #yefanqiu 发表于2007-07-09 11:05:54  IP: 222.130.250.*
    我给你找找,好久不用了,你留下Email,找到发给你
    w95_s7.dll在我印象中应该是普通DLL,不需要注册。
    #zxglc 发表于2007-08-09 10:11:36  IP: 221.204.26.*
    叶老师你好:
    我想做一套VC监控软件,下位机用S7300PLC,协议:MPI或PROBUS DP,能给我些资料吗?zxglc@163.com,谢谢
    #yefanqiu 发表于2007-08-09 14:43:57  IP: 222.130.241.*
    建议用prodave或softnet,通信比较稳定可靠。
    #f26511314 发表于2007-08-13 15:22:57  IP: 221.222.203.*
    你好,叶老师:
    我想做一套监控程序,下位机用S7300PLC,外加一块CP5611卡,想编程实现和PLC通信,获取数据。我改如何做?编程的话用VC方便还是C#方便?
    还有采用MPI还是ProfiBus?谢谢!
    #f26511314 发表于2007-08-13 15:27:21  IP: 221.222.203.*
    W95_S7.DLL和它的使用方法的VC的demo,给我也发一份吧,谢谢!

    zhangsh@shengzuo.com
    #yefanqiu 发表于2007-08-14 13:52:03  IP: 222.130.248.*
    如果采用了CP5611卡,当然用ProfiBus协议更好了,只有购买了MPI适配器才考虑用MPI协议。
    目前我们访问S7300最好的办法就是用prodave和softnet,都是采用动态连接库的方式进行开发,由于开发接口的参数一致性的问题,我倒是觉得VC更方便,实在不行在考虑C#。
    #f26511314 发表于2007-08-14 14:58:02  IP: 221.220.31.*
    谢谢你的回答,由于刚接触这方面的东西,所以对一些概念还比较模糊,见笑了。
    我知道应该使用ProfiBus协议,是不是不论用ProfiBus还是mpi,对于用prodave进行开发的话,方法都是一样的?
    需要W95_S7.DLL,需要地用里面有一些函数:
    (1)load_tool PC机与PLC系统初始化链接;
    (2)unload_tool 断开PC机与PLC系统链接;
    (3)db_read 从PLC的DB块中读数据字;
    (4)db_write 向PLC的DB块中写数据字。

    能不能给我个VC的例子,谢谢
    #yefanqiu 发表于2007-08-14 22:48:28  IP: 221.217.128.*
    //写数据 MB110
    unsigned long value;
    value=100;
    memcpy(Buffer,&value,4);


    iRes=m_field_write(111,1,Buffer);

    if(iRes==0)
    {
    m_Dis.SetSel(100000,100000);
    m_Dis.ReplaceSel("\15\12");
    myStr.Format("MB110=%3d",Buffer[0]);

    m_Dis.ReplaceSel(myStr);

    UpdateData(false);
    }
    else
    {
    AfxMessageBox(ErrString(iRes));

    }

    //写数据 MB4
    BYTE value1;
    value1=33;
    memcpy(Buffer,&value,1);


    iRes=m_field_write(4,1,Buffer);

    if(iRes==0)
    {
    m_Dis.SetSel(100000,100000);
    m_Dis.ReplaceSel("\15\12");
    myStr.Format("MD4=%3d",Buffer[0]);

    m_Dis.ReplaceSel(myStr);

    UpdateData(false);
    }
    else
    {
    AfxMessageBox(ErrString(iRes));

    }




    }

    void CTestDlg::OnLoad()
    {
    // TODO: Add your control notification handler code here
    adr_table_type myTable[2];
    myTable[0].adr=3;
    myTable[0].segmentid=0;
    myTable[0].slotno=2;
    myTable[0].rackno=0;

    myTable[1].adr=0;
    myTable[1].segmentid=0;
    myTable[1].slotno=2;
    myTable[1].rackno=0;
    int iRes;
    CString myStr;
    //初始化ProDave300
    iRes=load_tool(1,"S7ONLINE",myTable);
    if(iRes==0)
    {
    m_Dis.SetSel(30000,30000);
    m_Dis.ReplaceSel("\15\12");
    m_Dis.ReplaceSel("loa
    #f26511314 发表于2007-08-15 08:22:46  IP: 61.51.109.*
    非常感谢您的回答,主要我没有W95_S7.DLL以及相关的h和lib文件,网上也没找到Prodave的下载,麻烦您发个例子给我吧,谢谢。
    zhangsh@shengzuo.com
    #f26511314 发表于2007-08-16 10:02:40  IP: 221.217.210.*
    从网上找到Prodave了,而且找了一个S7_PLCSIM仿真程序,现在想用S7_PLCSIM模拟一个PLC,然后用VC通过Prodave来访问,请问这样可行吗?
    #yefanqiu 发表于2007-08-16 15:17:45  IP: 222.130.247.*
    不清楚,你可以先用现成的组态软件进行连接,如果他们可以,Prodave应该也可以。
    #f26511314 发表于2007-08-16 16:13:38  IP: 221.217.210.*
    用step 7 能够连接,但是用load_tool 返回830,com error,不知道为什么load不成功呢
    #wizzly 发表于2007-09-05 16:20:04  IP: 222.93.126.*
    叶老师:
    您好!
    想请教您一下,现在我在VS2005下面用prodave5.5,引用的格式为: <DllImport("W95_s7.dll")> Public Function load_tool(ByVal nr As Byte, ByVal dev As String, ByVal ADR As PLCAdrType) As Integer
    End Function
    这样就连接不上
    如果改成这样:Public Declare Function load_tool Lib "w95_s7.dll" (ByVal nr As Byte, ByVal dev As String, ByRef adr As PLCAdrType) As Integer
    这样就可以通上了,但是退出的时候为什么总是退不出去,就是界面没了,但进程中还有这个程序名.
    请指教.
    #yefanqiu 发表于2007-09-06 11:51:34  IP: 222.130.249.*
    好久不用prodave5.5了,不是特别清楚
    #hisstone 发表于2007-10-09 20:54:16  IP: 221.203.49.*
    叶老师:我是大连的一名学生,看了您网站上的这些帖子,觉得Prodave非常适合我现在的一个项目。如果方便的话也给我发一份W95_S7.DLL和它的使用方法。我想用VC做一个上位机监控界面,采用Profibus网络与S7-300通讯,用的是CP5611卡。万分感谢!我的邮箱是liuyantaoxtu@163.com
    #yefanqiu 发表于2007-10-11 10:44:41  IP: 222.130.241.*
    我已上传为资源,请从下面的链接下载:
    http://download.csdn.net/user/yefanqiu
    #CANMINGCHEN 发表于2007-11-03 15:40:24  IP: 60.186.27.*
    我最近要做,VC与西门子PLC通信的软件,用以太网通信,可是我现在希望叶老师能提供给我一个DEMO程序。我万分感谢!我的油箱是:canming.chen@gmail.com
    #yefanqiu 发表于2007-11-05 09:44:31  IP: 222.130.246.*
    prodave5.5不支持以太网通信,据说6.0版本已经支持了,我没有研究过。
    我用softnet就是英文prodave5.5不支持以太网,本文就是实现softnet与以太网的通信示例(不仅仅以太网),关键你要配置好softnet服务,VC这边的代码倒没有什么。
    #river7312 发表于2007-11-14 17:58:13  IP: 218.6.162.*
    叶老师:您好!我用Prodave+VB2005编了一个上位机,在一个Timer里采集所有所用的数据,由于同时读取比较多的数据,造成每采集一次数据主程序都要停滞2~3秒,这样的监控画面不好!看了上面的帖子,叶老师说需要开辟一个新线程来完成读写操作。我对建立线程还不是很清楚,能不能麻烦叶老师帮我做一个简单的读写线程的例子,不胜感激!
    E-mail:River7312@163.com
    #MODICON 发表于2008-05-27 15:38:42  IP: 221.220.184.*
    叶老师您好,我看了您上面的那些回复,我也想请教您一些问题。我也想用VC或VB开发个上位软件,可是不知从何入手,希望您能帮助我一下,谢谢。
    有人向您要W95_S7.DLL,我也不知它是做什么的,也想请您发一个,我也想学习一下,在此表示万分感谢,还有,要引用DLL文件是不是还需要.H文件呀,如果需要请您也给一份吧。谢谢!
    E-mail:shenchunlin315@163.com
    #yefanqiu 发表于2008-05-27 17:51:55  IP: 221.217.147.*
    你在CSDN查找一下,我上传的资源,有相关示例
    #xiaojun 发表于2008-06-02 14:47:17  IP: 210.42.106.*
    叶老师你好。我是武汉的一名学生,最近在做上位机和西门子PLC通讯的项目。叶老师你能不能发份W95_s7.dll里面的函数的介绍给我?谢谢。
    邮箱:zhangxiaojunhust@qq.com
    #wslai1979 发表于2008-07-15 11:47:26  IP: 60.48.189.*
    Hello, Im lai from malaysia. May i know this W95_S7.DLL can run on windowsXP or window vista? If I want to run it on windows vista is it ok?. Other can you give all the details about this W95_S7.DLL functions. Please advice me regarding this. Thanks.
    #yefanqiu 发表于2008-07-16 12:18:11  IP: 61.50.221.*
    在XP应该可以,在vista上没有测试。
    #cyw 发表于2008-08-05 11:26:16  IP: 121.194.79.*
    叶工,您好,我是做西门子PLC,这段时间要调通信,需要用到.net的书籍,请给我推荐两本这方面比较权威的书吧?还有实现PC和S7300TCP直接通信,还请知道一下?多谢
    2008-08-06 13:05:16作者回复
    C#高级编程(第4版) 不错,不过最好看一看有关串口使用的书。
    #cyw 发表于2008-08-06 19:33:08  IP: 121.194.79.*
    叶工,您好,实现PC和S7300TCP直接通信,我是要用到TCP协议,现在没有多少思路,还请指导一下?发些资料给我吧,我的邮箱是cyw1229521@163.com 十分感谢!!!
    #cyw 发表于2008-08-06 19:34:36  IP: 121.194.79.*
    还有现在我是想用VB做,因为VB上手比较快,做起来英爱快一些,还请多指教,谢谢
    #wulei 发表于2008-08-07 18:19:12  IP: 124.193.148.*
    叶工,你好,我从业好多年了,以前主要做MIS,硬件方面的东西接触的很少,但是现在公司对于机床通讯方面的项目很多,方便的话请给我发一点c#、vc与机床通讯的例子(socket这方面的做过,主要是串口、上位机方面的),我的MSN:mstguan_44@hotmail.com,不胜感激,在此谢过了。
    #刘彩霞 发表于2008-09-13 18:25:49  IP: 124.129.45.*
    急问,cimquest in gear是什么,好像是simens以太网和plc通讯的接口驱动,请高手解答一下!
    #于保军 发表于2008-09-20 18:02:03  IP: 222.168.81.*
    老师,您好:
    我想用CP5613卡与S7-300通讯,不知Prodave 5.5 是否支持他们之间的通讯,我用VC编制上位机程序   谢谢
    #yefan 发表于2008-09-21 12:41:49  IP: 221.217.133.*
    没有实际用过,我想应该可以吧!你可以试试!
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 叶帆