PB于PLC通讯
PB于PLC通信
各位知道怎么用PB与PLC通信吗,
1·我只需要读取PLC的数据和修改PLC的值。请问有没有办法?
2·我目前用C:\Program Files\SIEMENS\SIMATIC.NET\opc2\ocx中的sinet_opcdata.ocx控件进行处理,能写入数据,但是不能读取?请大家帮我看看是什么问题?
1.连接OPC服务器
long errn
errn=opc_1.object.connect()
if errn=0 then
messagebox( "OK","连接成功!")
cb_1.enabled=false
cb_2.enabled=true
cb_3.enabled=true
cb_4.enabled=true
else
messagebox( "Err","连接失败!")
end if
这部分是成功的。
2.写入数据,也是成功的
long ErrCode
ErrCode=opc_1.object.WriteVariable("S7:[DEMO]Md88",em_1.text)
if ErrCode=0 then
messagebox ("OK","写入数据成功!")
else
messagebox ("Err","写入数据失败!")
end if
3,读取数据,读取失败,请大家看看是什么问题?
long ErrorNr
any myValue
long myQuality
date myTimeStamp
ErrorNr = opc_1.object.ReadVariable("S7:[DEMO]Md88", myValue, myQuality, myTimeStamp)
st_1.text=string(myValue)
if ErrorNr=0 then
messagebox ("OK","读取数据成功!")
else
messagebox ("Err","读取数据失败!")
end if
是不是函数的参数有问题,还是什么原因,请大家帮我看看,最好详细指点一下谢谢。
如果有别的方法希望大家能告诉我怎么能最好的实现读写数据。谢谢了
------解决方案--------------------
帮你顶下,ReadVariable 这个函数有说明吗?研究一下说明?
------解决方案--------------------
可能是 any myValue 定义有问题;
看看说明,把myValue换种定义试试,如
string myValue
myValue = space(128)
因为上一个函数中 em_1.text 应该是文本的
------解决方案--------------------
long ErrorNr
any myValue
long myQuality
date myTimeStamp
如果用vb的话,你这几个变量怎么定义?最大的嫌疑应该是这里。
any那个,前边兄弟以经说过了,不过看你的变量名,我的建议是
long ErrorNr
any myValue
long myQuality
datetime myTimeStamp
还不行的话,再
long ErrorNr
string myValue
long myQuality
datetime myTimeStamp
各位知道怎么用PB与PLC通信吗,
1·我只需要读取PLC的数据和修改PLC的值。请问有没有办法?
2·我目前用C:\Program Files\SIEMENS\SIMATIC.NET\opc2\ocx中的sinet_opcdata.ocx控件进行处理,能写入数据,但是不能读取?请大家帮我看看是什么问题?
1.连接OPC服务器
long errn
errn=opc_1.object.connect()
if errn=0 then
messagebox( "OK","连接成功!")
cb_1.enabled=false
cb_2.enabled=true
cb_3.enabled=true
cb_4.enabled=true
else
messagebox( "Err","连接失败!")
end if
这部分是成功的。
2.写入数据,也是成功的
long ErrCode
ErrCode=opc_1.object.WriteVariable("S7:[DEMO]Md88",em_1.text)
if ErrCode=0 then
messagebox ("OK","写入数据成功!")
else
messagebox ("Err","写入数据失败!")
end if
3,读取数据,读取失败,请大家看看是什么问题?
long ErrorNr
any myValue
long myQuality
date myTimeStamp
ErrorNr = opc_1.object.ReadVariable("S7:[DEMO]Md88", myValue, myQuality, myTimeStamp)
st_1.text=string(myValue)
if ErrorNr=0 then
messagebox ("OK","读取数据成功!")
else
messagebox ("Err","读取数据失败!")
end if
是不是函数的参数有问题,还是什么原因,请大家帮我看看,最好详细指点一下谢谢。
如果有别的方法希望大家能告诉我怎么能最好的实现读写数据。谢谢了
------解决方案--------------------
帮你顶下,ReadVariable 这个函数有说明吗?研究一下说明?
------解决方案--------------------
可能是 any myValue 定义有问题;
看看说明,把myValue换种定义试试,如
string myValue
myValue = space(128)
因为上一个函数中 em_1.text 应该是文本的
------解决方案--------------------
long ErrorNr
any myValue
long myQuality
date myTimeStamp
如果用vb的话,你这几个变量怎么定义?最大的嫌疑应该是这里。
any那个,前边兄弟以经说过了,不过看你的变量名,我的建议是
long ErrorNr
any myValue
long myQuality
datetime myTimeStamp
还不行的话,再
long ErrorNr
string myValue
long myQuality
datetime myTimeStamp