在线诚求powerbuider 12.5与PLC下位机串口通讯问题的解决

lshw0369 2016-08-21 01:38:29
我用MSCOMM.OCX控件作串口通讯。程序代码如下:
////设置端口:
ole_comm.object.CommPort = 3
//波特率:
ole_comm.object.Settings='9600,n,8,1'
//读取缓冲区的字节数:0-所有数据
ole_comm.object.InputLen=0
//设置接收缓冲区的字节数
ole_comm.object.InBufferSize=1024
//设置发送缓冲区的字节数
ole_comm.object.OutBufferSize=0
//设置发送的字符数值时,触发oncomm事件,数据传输不产生oncomm事件
ole_comm.object.SThreshold=0
//设置接收的字符数值时,触发oncomm事件
ole_comm.object.RThreshold=1
//没有握手协议
ole_comm.object.Handshaking=0
//清空接收缓冲区
ole_comm.object.InBufferCount= 0 //0
//设置读取格式:0-文本;1-二进制
ole_comm.object.InputMode=0
//数据终端准备好
ole_comm.object.DTREnable=true
////允许请求发送(request to send),true
ole_comm.object.RTSEnable=true
//打开串口
if not ole_comm.object.PortOpen then
ole_comm.object.PortOpen=True
else
// ole_comm.object.PortOpen=false
end if

//发送命令
blob bufferout
string s_output
s_output =sle_out.text + char(13) // sle_out.text 是命令输入
ole_comm.object.OutBufferCount=0 //清空发送缓冲区
ole_comm.object.InBufferCount=0 //清空接收缓冲区
bufferout=blob(s_output) //sle_out.text
ole_comm.object.Output =s_output //向传输缓冲区发送读数据命令1
//ole_comm.object.Output =bufferout//向传输缓冲区发送读数据命令2

//****************
下位机的命令说明如下:
置M60 ON 的代码
":0105083CFF00B7
"
置M60 OFF 的代码
":0105083C0000B6
"
切记引号里面的所有内容(不包含引号本身),包括换行符都要复制过去。
换行符是结束符,不复制过去就不会有响应。
//**************

诚请各位老师指点。感恩诚谢!


...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lshw0369 2016-08-25
  • 打赏
  • 举报
回复
二楼的朋友您好,我现也开始学用WINSOCK.OCX ,加你QQ
lshw0369 2016-08-25
  • 打赏
  • 举报
回复
我自已解决了,把这条指令改一下:s_output =sle_out.text +‘~n’ + "~r"
qq_35830025 2016-08-24
  • 打赏
  • 举报
回复
楼主你好,你的问题我无法回答,你的控件我没有使用过 我用的是WINSOCK.OCX 控件 用于PLC工控取数 发送和接收的都是十六进制的数据, 在发送和接收十六进制的数据上请教与您, 看能否加个QQ

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧