台达PLC源码FORM VB60.docx
- 文档编号:2927186
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:18
- 大小:18.65KB
台达PLC源码FORM VB60.docx
《台达PLC源码FORM VB60.docx》由会员分享,可在线阅读,更多相关《台达PLC源码FORM VB60.docx(18页珍藏版)》请在冰豆网上搜索。
台达PLC源码FORMVB60
Publicstr_outAsString
DimsetaddrAsString,charAsString,setadAsString
DimdzAsString
Dimdz1AsString
PublicstrAsString
PrivateSubCOMBO1_Change()
SelectCaseCOMBO1.ListIndex
CaseY
dz1=Right(COMBO1.Text,Len(COMBO1.Text)-1)
CaseM
dz1=Right(COMBO1.Text,Len(COMBO1.Text)-1)
CaseT
dz1=Right(COMBO1.Text,Len(COMBO1.Text)-1)
CaseC
dz1=Right(COMBO1.Text,Len(COMBO1.Text)-1)
CaseS
dz1=Right(COMBO1.Text,Len(COMBO1.Text)-1)
EndSelect
EndSub
PrivateSubCommand1_Click()'PLC运行停止按钮
IfMSComm1.PortOpen=FalseThen'如果串口未打开
MSComm1.PortOpen=True'则打开串口
EndIf
SelectCaseCommand1.Caption'选择事件
Case"PLCRUN"
str="00050C30FF00"'通讯字符串
LRC=Chr_lrc(str)'计算lrc校验值
stx=":
"'起始字符冒号
str_out=stx+str+LRC+Chr$(13)+Chr$(10)'发送字符串内容
MSComm1.Output=str_out'通过串口发送
Command1.Caption="PLCSTOP"'按钮显示PLCSTOP等待下次按压此按钮
Command1.BackColor=&HFF&'按钮背景颜色为红色
Case"PLCSTOP"'事件PLCSTOP
str="00050C300000"'通讯字符串
LRC=Chr_lrc(str)'计算lrc校验值
stx=":
"'起始字符冒号
str_out=stx+str+LRC+Chr$(13)+Chr$(10)'发送的字符串
MSComm1.Output=str_out'通过串口发送
Command1.Caption="PLCRUN"'按钮显示PLCRUN等待下次按压此按钮
Command1.BackColor=&HFF00&'按钮背景颜色为绿色
EndSelect
EndSub
PrivateSubCommand2_Click()'写寄存器按钮
stx=":
"'起始字符为冒号
a=Right(Text1.Text,Len(Text1.Text)-1)'a为需要写入寄存器的数据
C=Text4.Text'c为需写入数据的寄存器地址
IfLen(C)>1ThenSRDZ=Right(C,Len(C)-1)'如果c的长度大于1,则输入地址srdz为去掉左边的一个字符后的字符
IfMid(Text4.Text,2)=""Then'如果地址文本框的第二个字符为空格,那么
MsgBox("请输入元件号!
")'提示请输入元件号
Text4.SetFocus'光标移至文本框
Text4.SelStart=1'光标在文本框第二个字符处闪烁
ExitSub
Else
IfVal(SRDZ)>999Then'如果输入地址SRDZ大于999则
MsgBox("元件地址超过限制!
")'提示元件地址超过限制
Text4.SetFocus'光标移至文本框
Text4.SelStart=1'光标在文本框第二字符处闪烁
Text4.SelLength=Len(C)'文本框字符长度为原长度
ExitSub
EndIf
EndIf
D=Hex(SRDZ+4096)'输入地址转换为十六进制数的台达PLC地址
IfLen(a)>=0Then'如果写入寄存器的数值大于等于零
IfMid(a,1)=""Then'如果写入的数值字符的第一位是空格
MsgBox("请输入数值!
")'则提示请输入数值!
Text1.SetFocus'光标移至文本框
Text1.SelStart=1'光标在文本框第二位闪烁
ExitSub
Else
IfOption2.Value=TrueThen'如果选择十六进制数制
IfLen(a)=1Then'且数值长度为1
a1="000"+a'那么,写入的数值为000加上输入的一位数据
Else
IfLen(a)=2Then'如果输入数据长度为2
a1="00"+a'则写入的数值为00加上输入的两位数据
Else
IfLen(a)=3Then'如果输入数据长度为3
a1="0"+a'则写入的数值为0加上输入的三位数据
Else
IfLen(a)=4Then'如果输入数据长度为4
a1=a'则写入的数值为输入的数据
EndIf
EndIf
EndIf
EndIf
Else'如果选择十进制数制
b1=Hex(a)'那么,直接将输入的数据转换为十六进制数
IfLen(b1)=1Then'如果输入一位十六进制数
a1="000"+b1'那么,写入的数值为000加上输入的一位十六进制数
Else
IfLen(b1)=2Then'如果输入的数据长度为2
a1="00"+b1'那么,写入的数值为00加上输入的两位十六进制数
Else
IfLen(b1)=3Then'如果输入的数据长度为3
a1="0"+b1'那么写入的数值为0加上输入的一位十六进制数
Else
IfLen(b1)=4Then'如果输入的数据长度为4
a1=b1'那么写入的数值为输入的数据
EndIf
EndIf
EndIf
EndIf
EndIf
IfVal(a)>65535Then'如果输入的数据大于65535
MsgBox("设值超过限制!
")'则提示设值超过限制
Text1.SetFocus'光标移至文本框
Text1.SelStart=1'光标在文本框第二个字符处闪烁
Text1.SelLength=Len(a)'文本框长度等于原长度
ExitSub
EndIf
EndIf
EndIf
str="0106"+D+a1'发送字符地址01命令06(写入)地址D数据a1
LRC=Chr_lrc(str)'计算lrc校验值
IfLen(LRC)=1Then'如果lrc校验值为一位
LRC="0"+LRC'则lrc校验值补零
Else
LRC=LRC'否则校验值为计算值
EndIf
MSComm1.Output=stx+str+LRC+Chr$(13)+Chr$(10)'通过串口发送写入命令
MSComm1.InBufferCount=0
EndSub
PrivateSubCommand3_Click()'读取暂存器按钮
setaddr=Text2.Text'变量setaddr为文本text2的内容
IfLen(setaddr)>1Thensetad=Right(setaddr,Len(setaddr)-1)'如果文本内容长度大于1则setad的值为去掉最左边的字符
IfMid(Text2.Text,2)=""Then'如果文本的第二个字符为空格
MsgBox("请输入地址!
")'则提示请输入地址
Text2.SetFocus'同时光标移至文本框
Text2.SelStart=1'光标在第二个字符处闪烁
ExitSub
Else
IfVal(setad)>1300Then'如果输入的地址大于1300,则
MsgBox("元件地址超出范围!
")'提示元件地址超出范围
Text2.SetFocus'光标移至文本框
Text2.SelStart=1'光标在第二个字符处闪烁
Text2.SelLength=Len(setaddr)'文本框的字符长度为原长度
ExitSub
EndIf
EndIf
FIRSTLOOP:
MSComm1.InBufferCount=0'串口输入缓冲器清零
MSComm1.OutBufferCount=0'串口输出缓冲器清零
stx=":
"'起始字符为冒号
a=Hex(setad+4096)'将地址加上H1000,并转换为16进制数
str="0103"+a+"0001"'str为0103加地址加读取长度
LRC=Chr_lrc(str)'计算str的lrc校验值
MSComm1.Output=stx+str+LRC+Chr$(13)+Chr$(10)'串口发送
'Tim=Timer
''Do
'IfTimer>Tim+3Then'如果通讯200毫秒以上,那么
'IfMsgBox("请检查通讯!
",vbRetryCancel+vbCritical)=vbCancelThen'弹出子窗口提示请检查通讯
'ExitSub
'Else
'GoToFIRSTLOOP
'EndIf
'EndIf
'LoopUntilMSComm1.InBufferCount=13'直到串口输入缓冲器字符长度等于13
SETIN=MSComm1.Input'SETIN为串口输入缓冲器字符串
bh=Mid(SETIN,8,4)'bh为回传数据的第八个字符开始的4个字符
IfOption1.Value=TrueThen'如果选择为十进制数值模式则
hcsj=Val("&H"+bh)'回传数据为数值
Text3.Text="K"+CStr(hcsj)'文本框显示十进制K加读回的数据
Else
Text3.Text="H"+bh'否则,为16进制,文本框显示16进制H加数据
EndIf
EndSub
PrivateSubCommand4_Click()
Calldizhi
stx=":
"
str="0105"+dz1+"FF00"
LRC=Chr_lrc(str)
Text6.Text=dz1
Ifdzcw=TrueThenExitSub
MSComm1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 台达PLC源码FORM VB60 PLC 源码 FORM