登录
首页 PLC论坛 欧姆龙OMRON
回帖 发帖
正文

主题:[求助]有谁做过对温控仪的控制吗?

点击:31411 回复:65

RKC CD401 網路上看不到PDF,請MAIL:ct.et@msa.hinet.net
03-12-08 10:59
我有收到你的e-mail,內容有些無法顯示,但是看起來都一樣.
03-12-08 11:20
那你收到了吗?如果在邮箱里没有收到的话那你在网上也可以看?
http://www.rkcinst.co.jp/english/pdf_manual/imcb03_e4.pdf
03-12-08 11:39
第16樓設定要兩邊相同,連線+對+,-對-若以上無問題待商請八百壯士借一只RKC CB系列溫控器測試.
03-12-08 12:59
CHECK程式發覺BCC轉換少一步驟,請注意新加入C$
A$ = "S1" + "100.0" + Chr(3)  ‘100.0是設定值(SV)
GoSub FCS
C$=Chr(R$)
B$ = Chr(4)+ "00"+Chr(2)+A$ +C$   ‘00是Unit No,R$是BCC
Label1.Caption = B$
MSComm1.Output = Trim(B$ + Chr(13))  ‘Chr(13)代表按鍵Enter輸入
MSComm1.InputLen = 0
If MSComm1.InBufferCount Then
  INSTRING = MSComm1.Input
End If
Label2.Caption = INSTRING
Exit Sub
FCS:
Q = 0
L = Len(A$)
For I = 1 To L
Q = Asc(Mid(A$, I, 1)) Xor Q
Next I
R$ =Q
If Len(R$) = 1 Then
R$ = "0" + R$
End If
Return
ACK 是06H,NAK是15H於VB看不到,可以檢查是否收到Chr(06),Chr(15)
最后修改:2003-12-8 13:26:40
03-12-08 13:11
Label2.Caption = INSTRING返回的是什么??
我按照你的意思修改了,但是依然没有反应!!温控仪没有反应,程序窗体上也没有返回值。
我相信我接的线一定是按照你说的接的,如果你没有错的话,我这里一定没有问题了。是不是温控仪有RS485根本就没有通上信号???还是什么愿因????请指点啊,陈老师???
03-12-08 14:47
今天看了一遍手册,好累呀!!!!
要解决通讯问题,需要注意以下几个方面
1。确认接线是否正确。这需要查PCL-740的手册。我印象中试1脚接DATA-,2脚接DATA+,和上面的一位朋友给出的是相反的。
2。设置温控器的通讯模式。可参考手册的第5到15页,有图,应该容易看懂。注意,设置完后要重新加电。
3。软件编程。在这里我假设温控器的设置是地址:00,波特率 9600 ,8位数据位,1位停止位。
Const SETTINGS = "9600,n,8,1" '定义串口的状态
Const COMPORT = 4 '定义串口号
Const ADDRESS1 = "00" '定义地址号
Const EOT=CHR$(04)
Const ENQ=CHR$(05)
Const STX=CHR$(02)
Const ETX=CHR$(03)
Const ACK=CHR$(06)
Const NAK=CHR$(21)
Const MSCOMM_EV_RECEIVE = 2 '收到了MSComm1.RThreshold个字符
Const MSCOMM_ER_RXOVER = 1008 '接收缓冲区溢出
Const MSCOMM_ER_TXFULL = 1010 '传输缓冲区溢出
Const TIME = 0 '设定扫描时间
Dim Volume, Flow, Temperature, Pressure As Double '定义双精度变量
Dim i As Single '定义循环变量
Dim InData, OutData As String '定义字符串变量
Private Sub Form_Load() '窗体初始化
 
   Call InitPort '初始化端口
   Timer1.Interval = TIME '设定定时器时间
   Timer1.Enabled = True '启动定时器
 
End Sub
Private Sub InitPort() '端口初始化
   MSComm1.SETTINGS = SETTINGS
   MSComm1.CommPort = COMPORT
   MSComm1.InputLen = 32
   MSComm1.InBufferSize = 512
   MSComm1.InBufferCount = 0
   MSComm1.OutBufferSize = 512
   MSComm1.OutBufferCount = 0
   MSComm1.PortOpen = True
End Sub
Private Sub SendAddress() '发送流量计地址
   MSComm1.Output = OutData
   Do '等待发送完成
   Loop Until MSComm1.OutBufferCount = 0
   MSComm1.InBufferCount = 0 '清空接收缓冲区
   MSComm1.RThreshold = 32 '设定接收字符数
End Sub
Private Sub MSComm1_OnComm() '等待完成接受
   
   
              这里我省略了错误判断的内容
       
       InData = MSComm1.Input
       If Left(InData, 1) = STX And Left(Right(InData, 2),1) = ETX Then '判断接收数据的头和尾,如果想进一步判断,还可以计算BBC ,并和得到的BBC进行比较,这里我没做。
           Volume = Val(Mid(InData, 3, 8)) 数值转换,Volume为读到的数据
           OutData=ACK,确认收到
           Call SendAddress
       Else
           OutData=NAK,确认未收到,重发
   Call SendAddress
       End If
           
   
           
End Sub
Private Sub Timer1_Timer() '定时器到设定时间后,开始发送启动和地址码
 
       OutData = EOT + ADDRESS1 + "M1" +ENQ , 读取M1所定义的数据,M1的定义在手册28页
       Call SendAddress
   
     
End Sub
匆忙之中,如果有不对的地方,还请海涵,这里我只实现了polliing 的一个功能,其余的就举一反三吧
由于手头没有设备,没有调试!!
03-12-08 16:14
高手出現啦!呵呵!..........臥虎藏龍
03-12-08 16:25
TO:flydragon
1)1 pin 是接DATA-;2 pin 是接DATA+ 说明书上是这样说的。你说是对的。
2)这个我以都设置好了。
3)正在调、、、、、、、、、、、、
谢谢高手这么的关心。真的太谢谢你了。
就等结果了。。。。。
03-12-08 16:39
对了还有一个问题是:温控仪上的A和B还SG哪个是DATA-哪个是DATA+呢?
03-12-08 16:42

上一页 下一页

工控新闻

更多新闻资讯