PRODAVE S7 大人请进! 点击:1379 | 回复:7



senda

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年7月30日
发表于:2004-07-30 09:35:00
楼主
连最简单的一个load_tool()都调用不起来,编译和连接都没错啊! 请大人指路! 以下是源码: #include<stdio.h> #include<windows.h> typedef struct { unsigned char adr; unsigned char segmenid; unsigned char slotno; unsigned char rackno; }adr_table_type; adr_table_type plc_adr_table[1] = { {2, 0, 0, 0} }; int state = 0; typedef int(*pload_tool)(int, char*, adr_table_type*); void main() { pload_tool load_tool; HINSTANCE hDll; hDll = LoadLibrary("w95_s7.dll"); load_tool = (pload_tool)GetProcAddress(hDll, "load_tool"); state = load_tool(1, "S7ONLINE", plc_adr_table); }



wincc123

  • 精华:4帖
  • 求助:0帖
  • 帖子:41帖 | 765回
  • 年度积分:1
  • 历史总积分:1067
  • 注册:2003年10月13日
发表于:2004-07-30 09:54:00
1楼
你这个是在哪里抄的吧?你的环境是VC++还是C++BUILDER? 它们的原文件入口也不VOID MAIN() 1:PRODAVE提供C的头文件和连接库,所以你的原文件中必须用 #INCLUDE"W95_S7.H"包含,同时这个头文件和.LIB文件需拷贝到你的工程目录下, 2:如果是VC或C++BUILDER,怎么还要声明一个句柄? 3:PLC_ADR_TABLE是指明将要连接的站地址和CPU所处槽号列表,2,0,2,0,当然这和编译连接没关系 4:加载库的方法不需这样,在C环境下有专门的菜单可一执行这个操作 5:PRODAVE提供的VC++库和C++BUILDE的库是不一样的,要注意编译环境

senda

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年7月30日
发表于:2004-07-30 10:19:00
2楼
回大人: 这些代码是S7手册上的 我是WIN2000+VC6 我已将w95_s7.dll,w95_s7.lib 都放到DEBUG下了 需要将S7-300连上吗? 请大人进一步指路,在线等待!

senda

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年7月30日
发表于:2004-07-30 14:43:00
3楼
强烈召唤ivyhvac, jch, wave61, fangmin (排名不分先后:)) 看了你们发的帖子,你们有成功初始化的经验,请帮小弟一把!

wincc123

  • 精华:4帖
  • 求助:0帖
  • 帖子:41帖 | 765回
  • 年度积分:1
  • 历史总积分:1067
  • 注册:2003年10月13日
发表于:2004-07-31 12:22:00
4楼
不是要你将.DLL,.LIB放到DEBUG目录下,要在菜单下将文件加入工程 你要会用VC++,这一步你总该会走吧

senda

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年7月30日
发表于:2004-08-01 11:07:00
5楼
是这样的 文档中提供了这样几个接口: C-Adapter int load_tool (int nr,char* device,char* adr_table); C-Adapter int unload_tool(void); ... 这些接口是在w95_s7.dll中的 通过 typedef int(*pload_tool)(int, char*, adr_table_type*); load_tool = (pload_tool)GetProcAddress(hDll, "load_tool"); 来取得接口地址 不太明白“要在菜单下将文件加入工程”这句话 请详细说明 不胜感谢!

wincc123

  • 精华:4帖
  • 求助:0帖
  • 帖子:41帖 | 765回
  • 年度积分:1
  • 历史总积分:1067
  • 注册:2003年10月13日
发表于:2004-08-02 09:00:00
6楼
你先熟悉VC++再说

senda

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2004年7月30日
发表于:2004-08-02 10:34:00
7楼
虽然我是新手 但你也不能这么打击我吧:) 我把它生成了一个EXE文件 还是不行啊! 程序的运行是这样的: 可以通过编译连接 但运行一段时间就报错了

热门招聘
相关主题

官方公众号

智造工程师