请教:simatic net和数据库的关系

现场设备为S7-300,工控机中使用Simatic NET软件,PLC与工控机之间走的以太网;

目前合作方想使用高级语言读写PLC中数据,使用的语言是PB,我查看西门子提供的有关高级语言读写PLC的文献主要为C#和C++;看样子合作方无法实现PB和C#间的转换,开始跟我们要一个中间数据库!但是参考别的公司的项目,的确可以通过Simatic net作为OPC媒介实现高级语言读写PLC,
请问:通过Simati Net 软件,是否满足合作方提出的所谓中间数据库的要求呢?最好能连带讲些相关知识!
请高手指点一下,比较急!谢谢

最佳答案

1.PowerBuilder,这个不需要C语言基础,主要用来开发数据库应用的,优点是开发的程序可以在各类数据库下工作,另外提供专业的数据库设计工具。
先从网上下载OPCDA20.EXE安装起来,然后从网上找个OPC控件包(有DACLTSDK.dll,DACLTSDK_ActiveX.ocx,OPC_AEPS.DLL,opccomn_ps.dll,opchda_ps.dll,OPCPROXY.DLL,OpcRcw.Comn.dll)拷贝到%WINDIR%\System32文件夹下,然后执行命令注册:

REGSVR32  /s %WINDIR%\System32\opccomn_ps.dll
REGSVR32  /s %WINDIR%\System32\opcproxy.dll
REGSVR32  /s %WINDIR%\System32\opc_aeps.dll
REGSVR32  /s %WINDIR%\System32\opchda_ps.dll
REGSVR32  /s %WINDIR%\System32\OpcRcw.Comn.dll
regsvr32  /s %WINDIR%\System32\DACLTSDK_ActiveX.ocx
%WINDIR%\Opcenum /RegServer


    在PB中创建一个opc控件,名字为ole_1,初始化 

TRY 
 if ole_1.object.Connect(host,serverid) then
  try 
  if ole_1.object.Addgroup("GROUP",updateRate) then
   return true
  else
   return false
  end if
  CATCH ( runtimeerror erAddgroup)
     return false
  END TRY 

 else
  return false
 end if
CATCH (runtimeerror  erConnect)
  return false
END TRY 
然后加标签

TRY
IHandle=ole_1.object.AddItem(itemname)
if IHandle>0 then
 return IHandle
else
 return 0
end if

取值

Value=ole_1.object.readItem(IHandle)


其他详细参考资料见:http://hi.baidu.com/jiachang130/blog/item/5f8dfa3e3764e50cbba16776.html
参考资料:http://blog.tianya.cn/blogger/post_show.asp?BlogID=2049916&PostID=21191751

提问者对于答案的评价:
感谢: lwp 和    T-C4 !非常有指导的讲解!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc171507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月12日 下午7:22
下一篇 2017年6月12日 下午7:22

相关推荐