技术论坛

S7-1200通过OPC与上位机通讯组建疑问

作者 主题
游民

经验值: 77
发帖数: 6
精华帖: 0
主题:【求助】S7-1200通过OPC与上位机通讯组建疑问


只看楼主 楼主 2020-03-06 11:00:40

如题,小弟小新一枚,正在学习西门子产品的通讯方面的知识。

学习到OPC通信时,PLC用的1200 上位机是家用PC机。

出现两种情况,已困扰多日,望各位大神能解惑一下:

情况一:在博图中建立PLC和OPC server的S7通信时,如果直接选择PLC为通信伙伴,如下图:

图1

随后S7通信的属性如下图所示:

图2

图3

图4

station直接XDB文件导入,未见异常提示,如图:

图5

communication setting软件中设置如下图(作用应该是configuration console吧)

图6

图7

上述工作结束后,在scout V10中进行查看,发现并未出现建立的S7通信名字:

图8



后来网上多方搜索,在论坛中发现一个帖子,帖子中有一张图片显示的时S7连接建立时未指定通信伙伴,如图:

图9

图10

其余设置相同,station导入未见异常,然后在scout V10中就出现了建立的S7连接名字,并且可以通信成功,能够读取I M Q PI C T的信息。如图:

图11


但是无法读取DB块的信息,能否帮忙指导一下,谢谢!



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1611813&b_id=7&s_id=0&pno=1

yzs
侠圣

经验值: 3553
发帖数: 441
精华帖: 7
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 1楼 2020-03-06 11:20:58

能够读取变量信息就说明OPC设置没什么问题了。无法读取DB块可以看看PLC程序中的相关DB设置,选择相应DB块--属性--属性,取消“优化的块访问”选项,选择“可从OPC UA访问DB”。如果还通讯不上看下DB地址的建立是否存在错误。


 
以下网友喜欢您的帖子:

  
游民

经验值: 77
发帖数: 6
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 楼主 2楼 2020-03-06 11:43:36

要访问的DB块属性如上图

内容如上


无法访问,PLC硬件组态时已经勾选了允许外部设备通过PUT/GET访问了。





 
以下网友喜欢您的帖子:

  
yzs
侠圣

经验值: 3553
发帖数: 441
精华帖: 7
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 3楼 2020-03-06 12:07:54

可以通过组态软件直接使用OPC通讯试试,看看你的DB地址建立是否正确。

地址导出点表建立案例如下

WINCC:"S7:[S7 connection_1]db1,x1.1", "", 11

"S7:[S7 connection_1]db1,W2", "", 2

"S7:[S7 connection_1]I0.0", "", 11

组态王:S7:[S7 connection_1]db1,x1.0,1

S7:[S7 connection_1]db1,W2,1



 
以下网友喜欢您的帖子:

  
至圣

经验值: 13749
发帖数: 2032
精华帖: 16
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 4楼 2020-03-06 12:35:33

你的博途里面组态的OPC SERVER版本太高了,调低。


工控毁我青春!
以下网友喜欢您的帖子:

  
游民

经验值: 77
发帖数: 6
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 楼主 5楼 2020-03-08 21:50:38

大神们,经过我研究其他成功的程序,我发现一个问题。我的博图在为OPC server添加新的连接时,S7类型的界面:

图1  S7连接类型中,主动建立连接的复选框无法进行更改

同时,S7连接的属性中TSAP号都无法进行更改,如下图:


而在其他类型的连接中,可以对其进行修改。


哪位大神能详细讲解一下,跪谢解惑!

困扰时间太长了



 
以下网友喜欢您的帖子:

  
至圣

经验值: 12236
发帖数: 2431
精华帖: 86
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 6楼 2020-03-09 07:43:02
DB块直接读不了,可以把ib等添加后再改为db(感觉有点不合常理).
 
以下网友喜欢您的帖子:

  
游民

经验值: 77
发帖数: 6
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 楼主 7楼 2020-03-09 14:35:10

向各位大神通报最新进展出现:

经过不断地搜索,最终根据通过OPC与S7-1500的通讯。S7-1200通过OPC与上位机通讯,通过UA sever可以进行优化的S7通讯。

1、建立S7连接,正常选择通讯伙伴:


2、PLC数据块不需要取消优化访问,生成XDB文件,导入。

3、communication setting的通讯协议勾选S7OPT的UA选项,具体如下:



4、打开SCOUT软件,点击Add server,搜索55105端口号,详见下图:图中4840端口号修改为55105端口号。



5、最终通讯结果如下:


敬谢各位大神的帮助!

不过没有测试通过这种方式建立的通讯在WINCC中能不能使用起来。


 
以下网友喜欢您的帖子:

  
游民

经验值: 77
发帖数: 6
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 楼主 8楼 2020-03-11 14:18:15

作为一名小新,经过继续的学习,对于OPC的通讯又有了新的发现。给小白看的,大神请飘过,不耽误您的时间。

以下所用的软件:

TIA Portal V15

SIMATIC NET V15


对于该篇帖子最开始的内容中,建立S7连接时分两种情况:指定通讯伙伴和未指定通讯伙伴。

指定通讯伙伴的情况下,在7楼回复中我已做了描述,通过UA Server可以读取DB块,当然,如果适用V8.2以及8.2以下版本的SIMATIC NET软件时,指定伙伴的连接也可以通过Local COM server对DB块进行读取。

而对于未指定通讯伙伴的情况下,最开始用Local COM server读取I\M\Q这些区都没有问题,唯独不能读取DB块,而且DB块属性也取消了优化块访问选项,SCOUT V10就是无法读取。

今天又重新实验了一下发现,其实并不是无法读取,只是我自己不会用而已。

https://support.industry.siemens.com/cs/document/39960679/pc-station-如何通过-opc-的方式与-s7-1200-通信%EF%BC%9F?dti=0&lc=zh-CN

这个地址中的指导文档给出了使用方法,如下:

PLC PC组态下载之类的就不再赘述,

打开SCOUT V10,直接按照如下方式输入要读取的DB块地址:


点击步骤1打开信息录入对话框,输入要读取的DB块地址,输入信息格式:S7:[S7_Connection_1]DB1,X0.0

在步骤3的下拉菜单找到OPCsever,点击确定,如此就可以对DB块的某一地址进行读取了。如下:


 


 
以下网友喜欢您的帖子:

  
至圣

经验值: 12236
发帖数: 2431
精华帖: 86
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 9楼 2020-03-11 15:41:53

版本低的的scout读db块输入地址要变通一下就可以。

 

添加不同 DB 数据类型的表达形式如下:

BOOL :DB1,X0.0,1

BYTE : DB1,B10,1

WORD : DB1,W20,1

DWORD: DB1,D30,1

INT : DB2,INT40,1

DINT : DB2,DINT50,1

REAL :DB2,REAL60,1


 


 
以下网友喜欢您的帖子:

  
yzs
侠圣

经验值: 3553
发帖数: 441
精华帖: 7
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 10楼 2020-03-11 16:11:17
以下是引用Mr.RMB在2020-03-11 14:18:15的发言 >8楼

作为一名小新,经过继续的学习,对于OPC的通讯又有了新的发现。给小白看的,大神请飘过,不耽误您的时间。

以下所用的软件:

TIA Portal V15

SIMATIC NET V15


对于该篇帖子最开始的内容中,建立S7连接时分两种情况:指定通讯伙伴和未指定通讯伙伴。

指定通讯伙伴的情况下,在7楼回复中我已做了描述,通过UA Server可以读取DB块,当然,如果适用V8.2以及8.2以下版本的SIMATIC NET软件时,指定伙伴的连接也可以通过Local COM server对DB块进行读取。

而对于未指定通讯伙伴的情况下,最开始用Local COM server读取I\M\Q这些区都没有问题,唯独不能读取DB块,而且DB块属性也取消了优化块访问选项,SCOUT V10就是无法读取。

今天又重新实验了一下发现,其实并不是无法读取,只是我自己不会用而已。

https://support.industry.siemens.com/cs/document/39960679/pc-station-如何通过-opc-的方式与-s7-1200-通信%EF%BC%9F?dti=0&lc=zh-CN

这个地址中的指导文档给出了使用方法,如下:

PLC PC组态下载之类的就不再赘述,

打开SCOUT V10,直接按照如下方式输入要读取的DB块地址:


点击步骤1打开信息录入对话框,输入要读取的DB块地址,输入信息格式:S7:[S7_Connection_1]DB1,X0.0

在步骤3的下拉菜单找到OPCsever,点击确定,如此就可以对DB块的某一地址进行读取了。如下:


 

我就说SIMATIC NET 不可能通讯不上DB的,在日常的使用过程中SCOUT 主要用于测试一下OPC是否通讯正常,如果SCOUT 读取变量能够成功那就成功了,在组态软件中只要地址命名规则正确那么通讯就基本没什么问题。

老版本的SCOUT用于测试建立变量时还快一点,新版本的很多时候反应还是比较慢,因此现在我都很少使用SCOUT测试通讯是否正常了。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1213
发帖数: 166
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 11楼 2020-03-15 03:00:42

我当初也是困在DB找不到这一步,而且我是比你更麻烦,连S7那里都没有显示出来,后来也是找到你下面给的那个英文文件,才发现communication setting就是很多文章中说的configuration console,然后设置打勾了才出来S7。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1213
发帖数: 166
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 12楼 2020-03-15 03:30:57




从上面2张图可以看出来只有S7_1的那个链接有用,我试过将3个连接分别删除,发现只要设置S7_1就可以了。还有感觉很奇怪的一件事,就是你说的DB块不可见,我在上面的那个@LOACALSERVE下面的DB目录是可以添加变量的,所以又在这上面测试了很久,发现一直没有通讯上,S7_1的M值添加之后是可以通讯上的。找了很久,才看到有人提示可以直接更改变量,就像6楼说的不合常理。


 这样添加变量之后,可以通讯。因为我这个只是学习,所以后面都放弃继续用OPC与1200通讯。不知道搞得这么麻烦,是不是因为已经有了PROFINET的通讯,所以这部分功能就没有那么完善呢。



 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2178
发帖数: 467
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 13楼 2020-04-12 14:57:38
我也正在学习opc ,也遇到你这样问题,现在还没搞明白
以不变应万变
以下网友喜欢您的帖子:

  
侠圣

经验值: 2178
发帖数: 467
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 14楼 2020-04-12 15:03:19
你的学习经验对我很有帮助!
以不变应万变
以下网友喜欢您的帖子:

  
新手

经验值: 48
发帖数: 2
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 15楼 2020-07-23 10:52:25

你的学习经验对我很有帮助!


 
以下网友喜欢您的帖子:

  
新手

经验值: 11
发帖数: 3
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 16楼 2020-11-01 16:49:14

大神,我的Local Ua server 打不开怎么办


 
以下网友喜欢您的帖子:

  
新手

经验值: 11
发帖数: 3
精华帖: 0
回复:S7-1200通过OPC与上位机通讯组建疑问


只看楼主 17楼 2020-11-01 16:52:13

大神,我的 OPC UA 服务开启时 报 函数不正确 是什么原因,


麻烦看一下


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
S7-1200通过OPC与上位机通讯组建疑问
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。