回复:想问个关于S7与其他组态软件及PLC通讯的问题?

展翅飞翔

西门子1847工业学习平台

  • 帖子

    1276
  • 精华

    33
  • 被关注

    16

论坛等级:侠圣

注册时间:2003-07-07

普通 普通 如何晋级?

发布于 2009-11-02 14:22:59

5楼

1 如果是用西门子的通讯程序的话,S7300的数据怎么上传?是通过调用特殊功能块吗,那么上位机怎么访问背景DB块的?还是把数据传到数据库,那么上位机怎么询问数据库的?

如果用西门子的通讯软件的话,一般都是指 Simaticnet. 在与第三方的监控软件进行通讯的时候,你不妨就把Simaticnet 理解为一个西门子专用的 OPC Server。 VB,VC甚至Delphi 跟OPC Server的通讯,例子在网上一搜一大堆。 Simaticnet 是需要花钱买的。不过几乎每一家的 OPC Server软件都是要花钱买的,基本上只有modbus 协议的OPC Server才是免费的。
不需要写任何特殊的功能块来调用去实现。
不管是I区,还是Q区,还是M区,还是DB区 其数值 都先送到 OPC Server,然后通过标准的开放的OPC接口,送给VB或者VC。
不知道你所说的数据库是指什么。实时数据库?SQL 数据库?跟这些概念没多大关系的。

关于访问背景DB。首先原则背景DB一般隶属于FB调用的背景专用,不能改写,只能读取。这是跟共享DB较大的差异。假设,程序有4个PID回路,调用了4次FB41,分别生成了DB141,DB142,DB143,DB1444个背景数据块。现要调用用DB141中的一个数据,例如 在OPC Server中新建变量 MV1 其地址定位为 DB141.DBD20(随便举例的哦)。 然后VB 通过browse 的方式找到并连接上 MV1这个变量,就可以在 VB界面显示 DB141中 DBD20的值了。

2 如果是自己写的通讯程序的话,也是通过访问数据库吗?

那么,要是访问数据的话,是什么样的格式呢?是不是在数据库里定义一个域,然后再对其访问的?

原则上不推荐 自己写通讯程序,倒不是小看大家,实际上s7协议并不是公开的协议。你无法明确其内部的报文格式。你要是写一个 功能跟Simaticnet 类似的软件出来,是很累人很累人的。
有很多的个人英雄主义者,从德国,到破解最流行的俄罗斯,再到中国,无数人的人想攻克这个问题,但是至今没见过一个像样的东西出来。

如果你想自己写一个通讯软件实现跟S7的通讯,那么大致有这儿几个步骤,首先,你的VB功底要很强(这个学院派和IT派系都不难达到);下来你得比较熟悉 底层通讯基础如Socket,TCPIP报文等(IT很多搞软的就不懂了,搞通讯的还可以);再下来你可以 “花钱” 购买西门子的通讯协议报文。(花费大约比买10套Simaticnet 略贵)。 然后你就可以自己写通讯软件了。
这样写下来,我还是不认为大家能比 西门子的SimaticNet要写的好。
跟数据库 和 域等概念也没什么牵扯。

3 那么S7PLC与其他PLC的数据怎么通讯呢?是通过数据库吗?
S7 与其他PLC的通讯,也不通过数据库。整个自控行业的硬通讯 跟IT的通讯,数据库通讯纯粹是2个概念。
例如 S7 PLC 和 Emerson DCS,一般走Modbus现场总线通讯,S7 PLC和ABB DCS,一般走Profibus 现场总线通讯。


4. 补充
如果你作为 IT 派系,习惯于自己动手写软件,而不习惯用现成的组态软件,那么有点点捷径可以走。

先去学习 西门子的 prodave 软件。这个软件原则上是卖钱的,但是 BU 负责 高校和院所的 有一些特殊政策。例如 赠送等。
你可以用 VB 调用 DLL的方式,实现跟S7的通讯。最新版本的 v6 支持 工业以太网的通讯的。 这样,可以不用自己写 通讯程序。

Qiaopeng1231--乔鹏
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32563条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。