当前位置: 主页 > PLC控制

通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?

通过OPCwincc7.0和rslogix5000通讯,连接已经建立,可以看到M,T和整个硬件的I/O模块,但wincc7.0如何直接读取CPU中的I/O点,如想看第一块输入模块第一位的状态?

问题补充:
就是OPC变量不知道如何连接CPU中模块的地址,好像新建的变量直接对应的一整个模块,但我想要的是模块的某一位的状态,如何转换?(WINCC和OPC在一个电脑上)

最佳答案

在WINCC中添加OPC.CHN(OPC通道),然后点击浏览,找到RSLINX或者FTGateOPCserver,你就可以看到OPC里组态的数据,把它们添加到WINCC中来就可以了。
参考WINCC通过RSLINXOPC读取ABPLC的数据的参考文档吧。
htTP://wenku.baidu.com/link?url=6gFlWCTWSklvhBAJi3kbeu8uwP0qBJoFV6TuQX3j9BQtbguauVjsl6AKvbvhUZRnUNBxjVRfmeUUIz_LhXiijJwznSddW1ZjpXtoGHcJ8dK

RSLINX的设置见附件
补充:SERVER和CLIENT在同一台电脑上一般不需要配置DCOM。

至于,就是OPC变量不知道如何连接CPU中模块的地址,好像新建的变量直接对应的一整个模块,但我想要的是模块的某一位的状态,如何转换?
这个问题,你应该去ROCKWELL里去问了,你打开ControllerTags新建变量A,B,C,D等BOOL类型然后采用RSLOGIX的ALIASFOR功能把A这个名称和Local:4:I.Data.0等io点连接起来。
这样你的OPCSERVER就能浏览到A也就是DI模块的IO点信号。
然后,我记得这些变量读取到WINCC里后,会变成BYTE还是INT型的。
这样你还需要在WINCC中,新建内部变量BOOL型,然后在全局脚本里做C脚本,通过类似下面的语句SetTagBit("A1",GetTagWord("A"));A是ABPLC的IO点在WINCC里的外部变量名称,A1是WINCC内部变量,也就是A不为0时,A1就是1,反之为0。这样你就可以单独看到每个IO点状态的,同时也是个BOOL型。

图片说明:

通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?9ac3ae9bf29f1e9e6e643cbdfb767151通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?通过OPC, wincc7.0和rslogix5000 通讯,画面如何直接读取I/O点?

提问者对于答案的评价:
谢谢大家的热心帮助,分数有限,照顾下新人,请资深的莫怪。

  • 关注微信

猜你喜欢

微信公众号