签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
如题,小弟小新一枚,正在学习西门子产品的通讯方面的知识。
学习到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
能够读取变量信息就说明OPC设置没什么问题了。无法读取DB块可以看看PLC程序中的相关DB设置,选择相应DB块--属性--属性,取消“优化的块访问”选项,选择“可从OPC UA访问DB”。如果还通讯不上看下DB地址的建立是否存在错误。
要访问的DB块属性如上图
内容如上
无法访问,PLC硬件组态时已经勾选了允许外部设备通过PUT/GET访问了。
可以通过组态软件直接使用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
你的博途里面组态的OPC SERVER版本太高了,调低。
大神们,经过我研究其他成功的程序,我发现一个问题。我的博图在为OPC server添加新的连接时,S7类型的界面:
图1 S7连接类型中,主动建立连接的复选框无法进行更改
同时,S7连接的属性中TSAP号都无法进行更改,如下图:
而在其他类型的连接中,可以对其进行修改。
哪位大神能详细讲解一下,跪谢解惑!
困扰时间太长了
向各位大神通报最新进展出现:
经过不断地搜索,最终根据通过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中能不能使用起来。
作为一名小新,经过继续的学习,对于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块的某一地址进行读取了。如下:
版本低的的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
我就说SIMATIC NET 不可能通讯不上DB的,在日常的使用过程中SCOUT 主要用于测试一下OPC是否通讯正常,如果SCOUT 读取变量能够成功那就成功了,在组态软件中只要地址命名规则正确那么通讯就基本没什么问题。
老版本的SCOUT用于测试建立变量时还快一点,新版本的很多时候反应还是比较慢,因此现在我都很少使用SCOUT测试通讯是否正常了。
我当初也是困在DB找不到这一步,而且我是比你更麻烦,连S7那里都没有显示出来,后来也是找到你下面给的那个英文文件,才发现communication setting就是很多文章中说的configuration console,然后设置打勾了才出来S7。
从上面2张图可以看出来只有S7_1的那个链接有用,我试过将3个连接分别删除,发现只要设置S7_1就可以了。还有感觉很奇怪的一件事,就是你说的DB块不可见,我在上面的那个@LOACALSERVE下面的DB目录是可以添加变量的,所以又在这上面测试了很久,发现一直没有通讯上,S7_1的M值添加之后是可以通讯上的。找了很久,才看到有人提示可以直接更改变量,就像6楼说的不合常理。
这样添加变量之后,可以通讯。因为我这个只是学习,所以后面都放弃继续用OPC与1200通讯。不知道搞得这么麻烦,是不是因为已经有了PROFINET的通讯,所以这部分功能就没有那么完善呢。
你的学习经验对我很有帮助!
大神,我的Local Ua server 打不开怎么办
大神,我的 OPC UA 服务开启时 报 函数不正确 是什么原因,
麻烦看一下
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录