请教高手,在Wincc6.2中是如何应用MSComm控件进行485通讯的,主要是如何去打开它的portopen属性,希望能有详细说明,谢谢。
问题补充:
关键是怎么使控件的PortOpen属性变为true,答案里都提到在WINCC里注册,我已经注册了,还是不行?
最佳答案
补充问题:我试了一下,控件的PortOpen是不可改的,使用脚本修改。
我来说个比较完整的流程吧。
1.注册MSComm控件。在运行中键入regsvr32.exe mscomm32.ocx,回车。
2.添加许可证。在运行中键入regedit打开注册表,在HKEY_CLASSES_ROOT\Licenses下建立一个Key主键,default默认值输入kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun。
3.WinCC画面编辑器中拖入Control控件,选择Microsoft Communication Control。
4.Mscomm控件的属性使用VB脚本修改,不必修改静态属性。基本属性及意义:
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
InputMode 设置并返回接收类型 0字符/1二进制。
SThreshold 设置并返回发送时产生ONComm事件的字符数 。
RThreshold 设置并返回接收时产生ONComm事件的字符数 。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
5.组态按钮,点击事件为VBS动作。
Set objMScomm=ScreenItems("MSComm1") '每一个Com端口对应一个Mscomm控件
objMScomm.CommPort = 1 '...使用Com1口
objMScomm.Settings = "9600,n,8,1" '...设置通讯参数
objMScomm.PortOpen = True '...打开串口
6.Mscomm控件的Oncomm事件为VBS动作。
if objMScomm.CommEvent=2 then '...有接受事件发生
data1 = objMScomm.Input '...接收数据
end if
http://www.ad.siemens.com.cn/club/bbs/post.asp?myreply=&b_id=5&a_id=306434&s_id=&num=#anch
提问者对于答案的评价:
已经测试成功,非常感谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc266420.html