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