
称重仪一般有几种通讯协议,但是基本都支持通用的232协议,也就是串口通讯。你可能要在程序里用ASCLL码或BCD码来和承重模块通讯。台达应该和三菱差不多。不过你最好还是找台达官网下载点资料读一下,了解一些特殊通讯寄存器的用法。没有程序给你参照。我只能给你思路和方法。
如果是简单的承重模块,不考虑寄存器地址的那种就是模拟量控制。
看手册,确定支持哪种通讯协议
找到仪表的通讯参数,波特率/数据长度/停止位。。。
拿电脑串口调试工具,试下通讯功能。
写PLC程序,如果支持MODBUS直接套专用指令,不支持就用通用协议,一个字符一个字符来编写了
该电子秤为上海耀华称重系统有限公司的XK3190-A9型仪表,输出为RS-232C标准接口,波特率为600/1200/2400/4800/9600、传输的数据格式(10位:第一位起始位,第10位为停止位,中间8位为数据位(ASCII编码))。通讯方式为:1。连续方式2。指令方式。本人选:
1。连续方式:所传送的数据为仪表显示的当前称重(毛重或净重)。每帧数据由12组数据组成。格式如下:
第X字节 内容及注释
1 02(XON) 开始
2 +或- 符号位
3 称重数据 高位
4 称重数据
5 称重数据
6 称重数据
7 称重数据
8 称重数据 低位
9 小数点位数 从右到左(0—4)
10 异或校验 高四位
11 异或校验 低四位
12 03(XOFF) 结束
异或:2异或3异或8异或9
本程序是从网上下载的(稍作改动),调试环境为Windows Xp Professional SP2,VB60,在VB中与串口通讯需要引入控件MSComm串口通讯控件在Microsoft Comm Control 60中)。具体程序如下:控件简称:MSC
Dim Out(12) As Byte '接收var中的值
Dim var As Variant '接收MSCinput中的数值
Dim i As Integer, j As Integer '随即变量,计算循环
Private Sub cmdOk_Click()
With MSC
InputMode = comInputModeBinary '设置数据接收模式为二进制形式
InBufferCount = 0 '清除接收缓冲区
If Not PortOpen Then
PortOpen = True '打开通信端口
End If
End With
End Sub
Private Sub Form_Load()
With MSC
CommPort = 2 '设置Com1为通信端口
Settings = "9600,N,8,1" '设置通信端口参数 9600赫兹、无校验、8个数据位、1个停止位
InBufferSize = 40 '设置缓冲区接收数据为40字节
InputLen = 1 '设置Input一次从接收缓冲读取字节数为1
RThreshold = 1 '设置接收一个字节就产生OnComm事件
End With
End Sub
Private Sub SwichVar(ByVal nNum As Integer)
Text4Text = Text4Text & nNum
var = Null
var = MSCInput
Out(nNum) = var(0)
End Sub
Private Sub Form_Resize()
Text1Width = MeWidth
Text4Width = MeWidth
End Sub
Private Sub MSC_OnComm()
With MSC
Select Case CommEvent '判断通信事件
Case comEvReceive: '收到Rthreshold个字节产生的接收事件
SwichVar 1
Text1Text = Text1Text & Chr(Out(1))
If Out(1) = 2 Then '判断是否为数据的开始标志
RThreshold = 0 '关闭OnComm事件接收
End If
Do
DoEvents
Loop Until InBufferCount >= 3 '循环等待接收缓冲区>=3个字节
For i = 2 To UBound(Out)
SwichVar i
Text1Text = Text1Text & Chr(Out(i))
Next
Text1Text = LTrim(Text1Text)
RThreshold = 1 '打开MSComm事件接收
Case Else
'PortOpen = False
End Select
End With
End Sub
运行结果:
当仪表显示:0 时
一直重复显示
+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B
或:出现下列错误:
实时错误:'9' 下标越界
由于本人没有接触过硬件通讯编程,加之时间紧,麻烦哪位高手帮助一下!!!!或者副少许费用也可!!!!!
怎样把显示正确的数据,而且显示格式为“-+999999”
485通讯也是可以的,有的仪表带模拟量输出的,比如4-20mA 0-10V这样的。如果不采用称重控制仪表的情况下,称重传感器也可以配上这种模块,其实主要看你实际使用情况,每一种通讯方式都可以,只不过价格不一样。
记得有一种称重PLC,可以直接和传感器连接,不需要变送器。可实现称重PLC集称重,计量,校准,归零,去皮等于一身,称重plc再结合PLC应有的可编程控制功能于一体非常方便用户来控制称重设备运行。 之前用过PLC主机为LS21-28MTH-2WT,PLC具有12入16出大电流晶体管,晶体管点最大电流可达3A,支持3路高速输出,2路高速输入。2路24位高精度称重通道,可将称重传感器直接接入PLC,无需外加放大器,具有称重速度快、精度高、使用方便、价格低廉等特点。
以上就是关于台达PLC称重模块不知道怎么用,如何写一个当前重量显示和去皮的程序。全部的内容,包括:台达PLC称重模块不知道怎么用,如何写一个当前重量显示和去皮的程序。、三菱PLC向称重仪表写入小数值如何编程、求能与PLC通信的电子秤 称重500g左右等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)