plc-vb监控
更新时间:2023-10-14 20:41:01 阅读量: 综合文库 文档下载
1 概论
在plc的图形监控技术中,虽然以使用通用型的人机接口搭配套装式图形监控软件较为简易、便利,但是就学习或使用者本身而言,只是就图形监控组件的变量(编号)或属性作一些简单的设定,至于plc pc间如何透过rs-232或rs-485串行通讯端口执行接点状态或数据缓存器数值之读取、写入与控制等,就有些雾里看花了。此外条形码扫瞄器(bar code reader,bcr)、电子磅秤(electronic load cell)、温度控制器、modus通讯、区域或网络通讯?等,若不知道相关的通讯协议,就无法与pc或plc联机以读取或写入所需的数据。有鉴于plc在产业自动化中的枢纽地位,加以各技职院校均开设有plc及vb等相关课程,若使用vb 作为plc的图形监控,在教学、自学及实作上不但可坐收事半功倍之效,同时也可达到科技整合的目标,提升机电控制的技术层次,因此本专栏就以plc_vb图形监控作为探讨主题。
图1 通讯协议数据格式
图2 位元元件位址的计算方式
2 plc通讯协议
pc plc通讯之目的,不外乎是pc与plc间进行相关接点状态或数据缓存器数值之读取、写入或控制,上述数据存取或控制,除了在硬件联机及通讯参数设定方面必须双方一致外,在讯息格式方面亦必须符合专属的通讯协议。在pc与plc的通讯架构中,pc为主系统(master),plc则为仆系统(slave),亦即pc与plc间通讯,是由pc发出命令讯息给plc,只有在plc接收到pc的命令后,才会响应一讯息给pc。
以下以丰炜(vigor)plc为例,介绍其m、vb、vh系列plc之通讯协议:
2.1 传输讯息格式
为了使得各类型pc能够互通讯息,美国国家标准局制定了ascii码。ascii码原先仅使用
7bits,因考虑到一些特殊的图形码,故目前已扩充为8bits。不过在plc pc通讯上,ascii码还是采用原先7bits的编码方式,所以其数据位为7bits。
2.2 通讯参数
(1)传输格式:usb或标准rs-232、异步(asynchronous)、双向传输。
(2)传输速率或鲍率(baud):plc内建之cp1固定为19200bps;cp2有4800、9600、19200、及38400bps等可供选择,由ladder master设定;至于 cp3则固定为19200bps。
(3)同位检查(parity check):偶同位(even parity,e)。
(4)数据位(data bits):7 bits。
(5)停止位(stop bit):1 bit。
2.3 通讯协议数据格式
通讯协议数据格式如下图1所示:
(1)起始码
数据传输的开头字符,pc下达命令给plc时之起始码为stx(2h),plc回传资料给时为ack(6h)。 (2)站号
数据传输对象的辨识码,在通讯回路中每一台plc都必须有一个站号,当pc对plc下达命令时,就是以站号来指定要将命令下达给那一台plc。plc内建之cp1固定为0号;cp2可选择范围为0~255号,由ladder master设定;cp3由vb-cadp模块左侧旋转开关设定,范围为0~99号。 (3)命令
通讯命令系pc要求plc所执行之动作,可以经由pc对plc执行位组件之状态或缓存器的值连续读取、写入或位组件on/off等命令共有4种,各命令码代号、种类、对象组件及其功能,如表1所示。
(4)传送数据
数据传输的内容,包含:数据地址、长度、内容及错误码?等。
(5) 结束码
数据传输的结束字符为etx(3h),当plc收到代表通讯结束的etx字符后,即可开始处理该次通讯命令或数据。
(6)检查码
系将图1中之站号~结束码中各字段所有ascii字符之16进制数值依序相加,但不考虑进位,也就是取其和最右边的2个数值作为检查码,此一核算方式称为2纵式余数查核法2(longitudinal redundancy check,lrc)。当接收端收到命令讯息后会依相同计算法则重新核算其检查码,若两者数值相同,则表示所传输数据正确,否则表示在传输过程中有错误发生。
(7)错误码
在plc的回传数据中会有一个错误的讯息码,错误码及其说明如表2所示。
2.4 数据地址
pc plc通讯必须了解plc内部有那些组件,以及那些组件的实际地址(address),以便于进行数据的存取。
(1)群组地址
适用于连续数据读取【51h】及连续数据写入【61h】等通讯命令,可分为下列二种:
① 位型态组件
诸如:x、y、m、s、t、c等多个字节(bytes)数据。若字节数byte=1时,则群组地址定义8个连续的位型态组件。
② 字符组型态组件
诸如:t/c现在值或缓存器d之数值等。
常用群组地址如表3所示,t/c现在值或d数值占有2个连续的地址。
(2)位组件地址
适用于将指定的bit设定为on【70】及设定为off【71】等通讯命令。位组件地址=数据地址+组件位置,计算方式说明如下:
【例1】求位组件y10的地址
解答:10/8=商数=1?余数=2;y0群组之数据地址=0040,取前3位=004+商数+余数=00412。之后将00412的前三个位舍弃,即可求得y10组件地址为020a,详细步骤如图2所示。经上述计算程序转换后之常用位组件地址如表4所示:
图4 检查码计算_vb窗体
图5 检查码计算结果
图6 位组件on/off_vb窗体
表1 pc→plc通讯命令
表2 错误码及其说明
表3 常用群组地址
表4 经过转换后之常用位元元件位址
3 vb简介
visual basic(vb)由于它提供了完善的图形化接口,兼具对象导向、事件驱动的程序设计理念,让使用者在vb的整合开发环境(ide)下,点选工具箱中所提供的识别图式工具按钮,经由对象在窗体的适当配置,不用编写程序即可完成所须的输入/输出接口,并可立即在屏幕上看
private sub command1_click()
`开启通讯端口
mscomm1.portopen = true
` pc下达位组件on/off命令给plc
mscomm1.output = chr(2) & text4.text & text1.text & text2.text & chr(3) & text3.text
`关闭通讯端口
mscomm1.portopen = false end sub
private sub command2_click()
text1.text = \
text1.setfocus end sub
private sub command3_click() end end sub
5.3【例3】基本通讯命令_组件群组连续写入【61】及读取【51】
(1)如前所述,组件群组定义为8×n个连续的位型态或字符组组件。设计一vb窗体如图9所示,并分别设置如图所示的对象或控件。
(2)若要将字节组件y0~y7全部设定为on,并采plc内建之cp1,程序执行后分别在各text文字方块内键入如图10所示的通讯格式,之后按下write钮,此时主机led面板上之y0~y7
灯号亮起。若键入如图11所示的通讯格式,按下read钮,则经由plc读取的数据亦为ff。
(3)程序代码
private sub command1_click()
mscomm1.portopen = true
` pc下达连续写入命令给plc
mscomm1.output = chr(2) & text6.text & text1.text & text2.text & text3.text & text4.text & chr(3) & text5.text
mscomm1.portopen = false end sub
private sub command4_click()
dim strtmp as string
mscomm1.portopen = true
` pc下达连续读取命令给plc
mscomm1.output = chr(2) & text6.text & text1.text & text2.text & text3.text & chr(3) & text5.text
`后测试循环,等待plc响应字符串 do
strtmp = strtmp & mscomm1.input
loop until len(strtmp) >= 12
`取出数据
text7.text = mid(strtmp, 8, 2)
mscomm1.portopen = false end sub
(4)1个byte数据读取程序代码解说
1个byte数据读取,plc响应字符串的字符数为12,数据由响应字符串的第8个字符开始往后取2个字符即为所求,如图12所示。
(5)本程序可扩充为字符组(word)连续写入及读取,以1个字符组为例,因为1word=2 bytes,故y0~y17全亮时之连续写入通讯格式如图13所示,连续读取通讯格式则如图14所示。
(6)1个word数据读取程序代码解说
1个word数据读取,plc响应字符串的字符数为14,数据由响应字符串的第8个字符开始往后取4个字符。因为数据是由较低次位lsb开始传输,故将low byte(b7~b0)和high byte(b15~b8)对调即为所求,因此祇要修改下列程序代码即可执行1个word数据读取,示意图如图15所示。 do
strtmp = strtmp & mscomm1.input
loop until len(strtmp) >= 14
response = mid(strtmp, 8, 4)
text7.text = right(response, 2) & left(response, 2)
6 plc_vb进阶学习范例
【例4】马达起动停止控制
综合运用基本通讯命令,利用单一组件mn之on及off,来仿真一plc外部输入按钮。并启动定时器(timer)控件每隔一特定的时间持续不断的经由串行通讯端口去侦测plc是否已将响应讯息传送到接收暂存区,并将其内容值执行and运算,以取出所拟监看接点。在接点状
态on/off变化时,则更改形状(shape)控件背景颜色(backcolor)的属性,达到图形监控的目的。
(1)plc程序设计
马达起动停止控制阶梯图,如图16所示。
(2)vb窗体
设计一马达起动停止控制之vb窗体如图17所示,并分别设置如图所示的对象或控件;vb执行结果则如图18所示。
(3)程序代码
private sub form_load()
`启动定时器
timer1.enabled = true end sub
private sub command1_click() `m0_on
mscomm1.portopen = true
mscomm1.output = chr(2) & \
mscomm1.portopen = false `m0_off
mscomm1.portopen = true
mscomm1.output = chr(2) & \
mscomm1.portopen = false end sub
private sub command2_click() ` m1_on
mscomm1.portopen = true
mscomm1.output = chr(2) & \
mscomm1.portopen = false `m1_off
mscomm1.portopen = true
mscomm1.output = chr(2) & \
mscomm1.portopen = false end sub
private sub timer1_timer()
dim strtmp as string
dim inttmp as integer
mscomm1.portopen = true
` pc下达连续读取y0~y7命令给plc
mscomm1.output = chr(2) & \ do
strtmp = strtmp + mscomm1.input
loop until len(strtmp) >= 12
strtmp = mid$(strtmp, 8, 2)
`将plc响应数据转换成10进制数值,并与1(y0为b0)作and运算,以取出y0
a = val(\
`判断y0的值
select case a
case 1 ` 1表示y0 on
shape1.backcolor = vbred`淡红色
label4.caption = \启动\
case 0 ` 0表示y0 off
shape1.backcolor = vbgreen `淡绿色
label4.caption = \停止\
end select
mscomm1.portopen = false end sub
图15 1个word数据读取示意图
图16马达起动停止控制阶梯图
图17 马达起动停止控制_vb窗体
图18 马达起动停止控制执行结果
7 结论
在plc的图形监控技术中,虽然以使用通用型的人机接口搭配套装式图形监控软件较为简易、便利,但是就学习或使用者本身而言,并不知晓pc plc间如何透过串行通讯端口执行接点状态或数据缓存器数值之读取、写入与控制等。此外更新版的vb虽然增加了许多因特网的应用功能,但作业环境及工作窗口亦变得较为复杂,使初学者不禁望而却步。一些简单的机电控制或应用,使用vb 6依然游刃有余。相信具备了vb6程序设计的理念和经验之后,跨入vb 2005或2008的学习及应用领域,应该可以触类旁通。
本文以丰炜plc通讯协议为例,就数据传输时之检查码计算、位组件on/off及组件群组连续写入及读取等基本通讯命令,使用vb6并按部就班为读者作一解说,最后综合运用上述基本通讯命令,以马达起动停止控制为例,使用定时器每隔一特定的时间,持续不断的经由串行通讯端口执行数据或数值的连续读取,并在接点状态on/off变化时,更改形状控件的背景颜色,达到plc_vb图形监控的目的。
通讯协议一般而言实属大同小异,故文中所提及之指令解说与实作,其它厂牌或机种之plc亦可适用。俗云:“师傅领进门,修行在个人”,6次专栏在此暂时告一段落,但愿您能针对每月专栏主题用心体会、勤加练习,相信假以时日您亦可“青出于蓝,而更胜于蓝”。
正在阅读:
plc-vb监控10-14
现代企业内部控制与内部审计06-27
牵引变电所施组04-10
丹麦语字母表02-12
物权法案例分析、论述及答案05-11
VaR分析的三种计算方法04-13
新视野大学英语第三版第四册Unit 2 Secrets to Beauty 教案11-01
高级财务会计综合测验02-02
我最爱的一个人作文600字07-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 监控
- plc
- vb
- 南岸区2014九年级一模试卷(手打)
- 05-05 附加服务介绍
- 《教育学基础》题库
- 高考政治压轴题(二)
- 车用气瓶安装质量保证手册
- 触摸式橄榄球规则
- 微观经济学计算练习题
- K201603《国际贸易实务(专科)》复习题答案
- 本田雅阁汽车空调系统的原理与检修论文
- SC200(200TD)施工升降机使用说明书 - 图文
- 2014-2015学年高中化学 专题1 第三单元 化学能与电能的转化专项训练学案 苏教版选修4
- c#实验四抽象类、多态、接口
- 价格条款的订立
- 常见热处理工艺 - 图文
- 贵阳市轨道交通1号线初步设计概算编制总结
- 阶梯基础计算
- 浅谈农村小学德育工作
- 非上市公司股权激励资料汇编
- 外商如何在越南开办工厂或设立公司
- 开办零售药店所需的十八项管理制度(全)