用PLC控制称重,其实很容易,5分钟学会S7-200称重编程和校称
原创不易,请勿抄袭!
我知道这么写一点意义都没有,我也不可能去追究别人盗版我文章的责任,但我希望我写了近6个小时的文章会有人真心喜欢,会有人能够学到文章里的知识点,并应用到工业中,这样我的目的就达到了,然后希望大家能支持我一下,点赞收藏并分享,让更多的人看到这篇写之不易的文章,谢谢。
上篇文章我们讲了PLC连接称重传感器的几种方法以及这几种方法的优缺点,今天我们说一下如何使用西门子S7-200编写称重程序。下篇文章我们会再讲一下西门子S7-300的称重程序;本文提到的所有程序实例,手册和库文件还有称重模块的详细信息以及校称软件等等我都已打包好,有需要的在评论区留下邮箱,我会一一发送。
1 称重传感器+二次表+模拟量输入的方式比较简单,只需要识别好模拟量输入通道,然后将模拟量输入转换为需要的数值范围就可以。
2 称重传感器+二次表+通讯的方式,需要选择带232/485通讯接口的PLC,设置好通讯参数后,从接收口读到的数值就是称重的实际数值,然后进行换算即可,232/485通讯也是PLC使用的一个知识点,大家有兴趣的话可以在下方留言,我可以给大家讲解。
3 我们主要讲讲这个最经典的方式吧,那就是重传感器+接线盒+称重模块。
要想使用这种方式称量的话,我们需要编写PLC程序,并且通过软件设置称重模块参数,并进行校称等操作。
一首先我们先说说PLC编程,其实称重系统的编程学起来非常难,但应用起来非常简单。为什么这么说呢?
举个例子,1+1=2大家都知道,但是要问1加1为什么等于2那就复杂多了。
所以大家想用PLC控制称重系统的话,只需要把我给大家做的例子按照现场实际设备简单修改一下,然后下到PLC里就可以使用,下载后有疑问的话再去测试各个点的功能,多用几次后就熟练了。(几乎所有人的第一套PLC程序都是抄袭别人的,一点一点探索然后自己才有思路。)
但是为了让大家理解更深一些,我除了把程序发给你们让你们模仿外,还会将一些重要的信息列出来,让大家对称重系统有一个系统的了解,这样才能快速的学会称重的编程。
我们选用的PLC是CPU226.西门子S7-200其他型号也可以,但是需要注意:1不同PLC可以拓展的称重模块数量不同,2程序设置的起始位置可能有变化,因为有的PLC自带模拟量,所以接到PLC后的称重模块的起始值就不是AIW0,而称重模块前没有模拟量输入的一般起始地址就是AIW0.具体起始值以硬件监测到的为准,这个后文我们会说到。
然后按照接线图将传感器接到接线盒,再由接线盒接到PLC模块,然后检查下回路,没有问题后送电。
连线方式
SIWAREX MS称重模块
用西门子的专用编程电缆连接到PLC,以前说过西门子PLC的区别,S7-200没有以太网口,S7-200smart不能拓展称重模块,有点尴尬,所以只能用这种特定电缆进行编程。
西门子称重模块可以理解成一种硬件,所以需要驱动,对西门子S7-200来说,这个驱动就是库文件,我们将库文件倒入程序中,库文件也打包在文件包里。
打开软件,添加库文件
添加成功
程序出现在库里
倒入后大家可以看到两个程序块,一个程序块是用来读取称重数值的,另一个是用来清零的,这两个程序块我们可以直接拉出来用。
连接好PLC后先将滤波功能去掉,以前的文章说过,滤波会导致称重有延迟,所以需要去掉。工业自动化的知识网络就是由一个一个知识点构成,我需要将整个知识网络拆分成一个一个知识点,大家需要一个一个知识点学习,然后构建自己的知识网络。
删除滤波功能
然后我们读取下PLC信息,可以看到状态是AIW0,图片为例子为截图,德国的E是输入I,A是输出Q的意思,所以有些德国图纸标记是E和A,大家了解一下就可以。
可以看出起始值是AIW0,和AQW0,后面程序设置会用到
然后我们进行编程。
第一行和第二行为数据转换,其中第一行的firstA为PLC硬件读到的地址,其他的依次后移一个字节;比如文中读到的地址是AIW0,AQW0参数设置就是AIW0,AIW2,AIW4,AIW6,AQW0,AQW2,AQW4,AQW6;如果读到的地址是AIW8,AQW8参数设置就是AIW8,AIW10,AIW12,AIW14,AQW8,AQW10,AQW12,AQW14。
FirstVB是数据转换的起始位置,以指针的形式,实际数据为后移一位,如果是&VB200,那实际读数就是VW202,这个数可以任意填写,只要不侵占其他程序就可以。
第三行和第四行是清零指令,按照上述程序即可实现清零,但需谨记,清零仅在称的重量小于一定数值以下才可,否则无法清零,我用的传感器的清零上限是50g。
PLC程序就是这样,因为VW是字的格式,不可以与数值作比较,需要转换到可计算的数据格式,所以例子程序转换为VD1000,VD1000就是可以比较的最终重量数值,如果需要以设定值控制外部设备的话就用VD1000做数值比较就可以。
二除了PLC程序,我们还需要按照称重传感器设置称重模块参数。我们需要用到的软件是Siwatool_V4或者Siwatool_MS,这两个软件的区别就在于Siwatool_V4可以针对多个称重模块,Siwatool_MS只对应一种模块,所以我一般两个都装,哪个好用用哪个,用法大致一样。
我们需要一根线连接称重模块和安装以上软件的电脑;
两侧各为9针串口,称重模块上有串口接口,电脑侧如果没有的话需要串口转USB转换器。
连接之后。
点击Module name,选择SIWAREX MS
然后点击Online按钮,软件与模块建立通信,如果通讯不上的话,切换一下COM口就可以了。
PC列参数表示SIWATOOL软件中的参数设置,SIWAREX列为称重模块内实际设置的参数,当二者不一致时,参数为红色。
将鼠标点击Adjustment parameter (DR3) 上,鼠标右键,选择Receive data record,将DR3中的所有参数读取到SIWATOOL软件中。
第二步:称重模块参数设置
Adjustment weight 1:标定砝码重量,因为SIWAREX MS只能通过一个Word来存储重量,无法显示小数点,所以此处输入砝码重量时需要考虑小数点个数。此处输出2000,如果小数点个数为2,那么代表标定砝码重量为20.00
Decimal place for the remote display:小数点个数
Weighing range:称量范围,指容器或者秤台上被称量的物料的最大重量,而不是传感器量程。当重量大于此处设置的称量范围时,称重模块的MAX指示灯会变为红色。
第三步:将参数发送到称重模块中
完成上述参数设置后,将鼠标点击Adjustment parameter (DR3) 上,鼠标右键,选择Send data record,将DR3中的所有参数写入到称重模块中。
第四步:零点标定
将秤清空,然后执行零点标定,此时重量显示为0。
第五步:砝码标定
将标定砝码(重量与第二步设定的砝码重量一致)放在秤上,然后执行砝码标定,此时显示砝码重量。
第六步:参数备份。
点击Receive all data按钮,将称重模块参数全部上载,然后单击Save as按钮,将参数保存为文件。如果需要更换新模块时,只需要将该文件打开,通过Send all data,将参数下载到新模块中即可,无法重新进行标定。
西门子有多种称重模块,软件也有多个,但都大同小异,只要我们熟悉一个效称软件,其他的就非常容易了。
最后提醒大家一下,无论是更换称重模块还是更换称重传感器我们都需要重新效称,然后即使不坏的话,传感器使用时间过长也需要重新效称才能保持准确度。
六小时的心血啊,希望大家喜欢,分享知识是我最大的快乐!想要资料的留下邮箱。
(如果喜欢这篇文章,请点赞并关注,以便优秀文章在第一时间收到推送)
PLC基本原理知识汇总,初学者必看
PLC概念(基本组成、工作原理)PLC的数据类型&&寻址方式 (这个地方要分清楚,PLC的存储空间大小(位字节字双字BIT BYTE WORD DWORD)、储存器类型(西门子DIDQAIAQMSMVLTCHTHC区;三菱XYMDTCRVZ区)、数据类型(INT16 DINT32 REAL STRING WORD16 DWORD32 BOOL TIME DATE CHAR8 BYTE8 ))PLC的储存器类型(S7-200)PLC系统开发流程PLC STEP7中常数的表达方式(K10,H16,O8,BCD)三菱中的D0是16位的,两个字节。M0是1位。西门子1200中的则全是M区,用MB/MW /MD来表示8位16位32位西门子200smart和200中全是V区01、PLC概念
PLC(Programmable Logic Controller),可编程逻辑控制器。工业控制用的计算机。
PLC的基本构成
其基本构成有电源、CPU、储存器、输入单元、输出单元、通信接口、扩展接口。
(1)电源:PLC供电,可以是220VAC或者24VDC,CPU处理单元所需要的电源为5VDC。
(2)CPU(中央处理单元),包含了控制器、运算器、寄存器。
(3)存储器是之具有记忆功能的半导体电路,可以存放系统程序、用户程序、逻辑变量。分为ROM(Read Only Memory 系统存储区)和RAM(Random Access Memory)。
i.ROM存储区分为系统管理程序、用户程序编辑以及指令解释程序、子程序调用及管理程序
ii.RAM存储区包括用户程序存储区和数据存储区,分别用来放置用户程序和程序执行过程中各点的ON/OFF状态量。用户存储区的数据可读可写执行。采用的材质为CMOS RAM或者EPRAM和EEPRAM。容量一般以“字”为单位(16个位为1字,8个位为1字节)。所以我认为建议编程的时候使用偶数编程。
(4)¥输入单元是指接收信号的单元,检测信号传来的信息并且将其转化为高低电平的数字量信号。(分为开关量和模拟量,模拟量通常采用A/D转换电路,把模拟量转换成数字量。数字量采用的接口电路比较多,分为内部直流输入(12V或者24V)、外部交流输入(100-120V、200-240V)、外部交直流输入、与信号输出相连的输入电路。)(交流输入、直流输入、源型漏型、共阴极共阳极、外界信号输出接PLC输入单元(PNP,NPN))
(5)输出单元指将CPU处理之后的弱电信号转化为电平信号。(电平信号是指设备输出信号和输入信号的功率比然后取对数值,通常用P表示,P=lgP2/P1。)(输出接口分为开关量和模拟量。模拟量接口通常通过D/A转换电路,数字量转换成模拟量,数字量输出电路形式比较多,有继电器输出、晶体管输出(PNP,NPN)、晶体闸输出。)
(6)通信接口,和监视器、打印机、其他PLC、计算机等设备实现通讯。
(7)扩展接口,给PLC增加一些专用功能模块,比如高速计数模块、闭环控制模块、运动控制模块、中断控制模块。
PLC的工作原理
PLC通电→内部处理→通信处理→自诊断→输入采样→用户程序执行→输出刷新
PLC采用周期循环扫描的方式,集中输入集中输出。
优点是:可靠性高、抗干扰能力强。缺点是:响应速度慢、响应滞后。PLC会采用WDT(看门狗)来监视扫描是否超过预定时间。
内部自处理:包括硬件初始化、I/O模块配置检查、停电保护范围设定等等。在自诊断测试阶段,CPU检测PLC各模块的状态,若出现异常立即进行诊断和处理,同时给出故障信号,点亮CPU面板上的LED指示灯。当出现致命错误时,CPU被强制为STOP方式,停止执行程序。CPU的自诊断测试将有助于及时发现或提前预报系统的故障,提高系统的可靠性。
通信处理阶段:PLC和自身带有CPU的智能模块以及其他外部设备进行通信,完成数据的收发,响应编程器的命令,更新编程器显示的内容,更新时钟以及特殊寄存器的内容。在通信处理阶段,CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程I/O接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。
(自诊断→输入采样→用户程序执行→输出刷新→)为一个扫描周期
输入采样阶段:扫描所有的输入端子并且将其的状态(0/1)存放到输入寄存器(PII)中。然后关闭输入通道,进行下一步程序。这种方式可靠性高,但是会有一定的时间延迟,在大型的项目中,由于时间的关系,可能会采取定期输入取样、直接输入取样、中断输入取样、智能I/O接口模块取样,用来提高速度。
用户程序执行阶段:此阶段中,数据从输入寄存器(PIQ)和内部元件寄存器(内部继电器、计数器、计时器)中,将有关元件的状态和数据取出,按照程序中的逻辑运算和算术运算,将结果写到输出映像寄存器和相关存储器中。所以,在PLC内部,内部元件寄存器的状态是一直在改变的。
输出处理阶段:程序执行完成后,把内部元件寄存器中的所有输出继电器状态在输出阶段一次性转存到输出锁存器中,经过隔离、驱动功率放大电路输送到输出端,并且外部PLC接线驱动实际负载。
输入输出滞后时间:该时间又称为系统响应时间,包括输入电路滤波时间、输出电路滞后时间、因扫描工作方式产生的滞后时间。PLC的响应延迟一般是几毫秒-几十毫秒,对于一般的系统没有影响。如果需要时间短的系统,我们可以采用扫描速度快的PLC或者采取中断等措施。
(1)输入电路滤波时间。主要是由于外部传入的信号可能存在噪音干扰、尖峰电压、外部抖动会影响我们的输入信号。所以使用RC滤波电路(利用电压源和电流源驱动电容和电阻组成的电路)和光耦合器(在输入侧采用光耦来切断内部与外部线路电气上的联系)来消除这些影响。滤波电路的时间常数决定了滤波时间的长短。
(2)输出模块电路滞后时间:与类型有关,继电器输出模块的滞后时间一般为10ms,双向晶闸管的滞后时间为1ms-10ms,晶体管的滞后时间为1ms以下。
(3)由扫描工作方式引起的滞后时间:最长可以达到2-3个扫描周期。
02 PLC的数据类型
03 二进制(BIN: BINARY NUMBER)
硬件内部的数据处理是按照二进制进行的
负数的处理,也是以二进制的补码来实现的
用途:内部处理
04 八进制(OCT:OCTAL NUMBER)
在三菱FX系列中,输入继电器、输出继电器的软元件编号都是X0~X7 Y010~Y017
用途:输出入继电器软元件编号
05 BCD码(BCD: BINARY CODE DECIMAL)
BCD码就是将10进制的数字,用二进制的形式表示出来,比方说10的BCD码就是 0001 0000
用途:BCD数字开关,7段码显示器
06 实数(浮点数数据)
在三菱FX系列中,采用二进制进行实数运算,采用10进制进行实数监控
字符串常数最多32位
字符长度位8位,所以 D100(16位)可以代表两个字符
字符串的数据,从指定的位置开始(D100或者M100开始都可以),当碰到OOH代码(也就是NULL代码,需要16位)的时候,表示字符串结束,如果没有碰到OOH或者只碰到一般,是不会检测到字符串结束的。
三菱FX系列中位的位数的指定(KnX0 ………)
位软元件的处理
像X Y S M 这些处理ON/OFF信息的软元件是位软元件
像T C D R 这些处理数值信息的软元件是字软元件
但是,我们的位软元件经过组合也可以当做字来使用。以位数Kn和起始软元件的编号的位数为4位单元,K1K4表示16位;K1k8表示32位
连续字的指定
子软元件的位指定(D100.E)
(位(BOOL)→字节(BYTE)→字(WORD)/整数(INT)→双字(DWORD)/双整数(DINT)/浮点数(REAL))
ASCII/字符串(STRING)
1个ttl电平信号为1位;8个位为一个字节;2个字节为1个字;2个字为1个双字。
位也就是BOOL,布尔型,范围为 0 / 1
字节的范围为 0—255;0-FF;相邻的8个为(0-7)(IB1=I1.0~I1.7)
字的范围为 0—65535;0000-FFFF;相邻的两个字节(IW2=IB2+IB3)
双字的范围为 0—2的32次方;00000000-FFFFFFFF;相邻的两个字(ID4=IW4+IW6=IB4+IB5+IB6+IB7)
寻址方式有按位寻址、按字节寻址、按字寻址、按双字寻址
按位寻址:I0.0 I0.1 I0.2 I1.5 I2.7 I2.8(错误)
按字节寻址:VB0 VB1 VB2 VB3… (间隔为1)
按字寻址:VW0 VW2 VW4 VW6 VW32…(间隔为2)
按双字寻址:VD0 VD4 VD8 VD32….(间隔为4)
西门子的数据存储类型是高字低位,怎么理解?
MD100
MW100MW102
MB100MB101MB102MB103
M100.7/6/5/4/3/2/1/0M101.7/6/5/4/3/2/1/0M102.7/6/5/4/3/2/1/0 M103.7/6/5/4/3/2/1/0
其中,M103.0就是高字节的低位;M100.7就是低字节的高位
三菱的数据存储类型是高字高位,怎么理解?(存储从右往左依次增大)
D100
D101D100
D101. F/E/D/C/B/A/9/8/7/6/5/4/3/2/1/0D100.F/E/D/C/B/A/9/8/7/6/5/4/3/2/1/0
其中,D101.F就是高字节的高位;D100.0就是低字节的低位
①立即寻址
②直接寻址
a)绝对地址
b)符号地址
③间接寻址
a)存储器间接寻址
i.16位指针(DB、T、C)
ii.32位指针(存储器间接寻址)
b)寄存器间接寻址
i.32位指针存储区内部寻址
ii.32位指针存储器交叉寻址
07 PLC的储存器类型(S7-200)
V存储器(变量存储器),一般用来存放逻辑的中间结果,很常见。
M存储器(标志存储器),一般用来标志。不常用。MB0-MB13 这14个字节存储
在EEPROM中永久保存,断电永久保持。
SM存储器(系统存储器):在F1帮助中可以查看,或WIN中符号表中有S7-200指令
SM0.0:该位总是打开
SM0.1:首次扫描的时候打开,用于初始化程序。
SM0.5:时钟脉冲,0.5s闭合,0.5s打开。
L存储区(局部存储区):V存储区为全局有效,而L存储区只是在局部有效。局部存储区需要CPU进行动态分配,当中断程序或者调用一个子程序的时候,CPU会分配局部存储器给中断程序或者子程序。另外,局部存储区在分配的时候需要进行初始化,因为给的数据是随机的。
AC寄存器(累加寄存器):可以向子程序传递参数,储存计算的中间结果。S7-200中提供了4个32位累加器(AC0 AC1 AC2 AC3)。
话外:S7-300中的寄存器有:ACCUx累加寄存器 、 AR1/AR2地址寄存器、 数据块寄存器、状态字
S7-300中的存储区有:I/Q 输入输出过程映象区、M(位存储区)、T定时器、C计时器、PQ/PI 立即访问输出输入模块、 DB共享数据块、 DI 背景数据块、 L局部数据
08、PLC系统开发流程(距离实现电动机正反转)
(1)明确系统的控制要求
系统要求3个按钮控制正反转和停转,并且要求对电动机进行过载保护,另外正反转 自锁和互锁
(2)确定输入输出设备,并且为其分配相应的I/O端子
(3)绘制系统控制线路图
主电路、控制电路
(4)编写PLC控制程序
正转控制、反转控制、停转控制、过载保护
(5)程序调试
(6)安装系统控制线路,并且进行现场调试
程序调试好之后,现场调试。(硬件问题&&软件问题)
(7)系统投入运行
试用一段时间
09 STEP7中常数的表达方式
STEP7中常数值可以是字节、字、双字,CPU是使用二进制方式储存常数的。在STEP7中,常数也可以使用十进制、十六进制、ASCII码、浮点数等格式进行表示。
B#W16、W#16#、DW#16# 表示 16进制字节常数、16进制字常数、 16进制双字常数
2#表示二进制常数
L#表示32位双整数常数
P#表示地址指针常数
S5T#表示16位S5时间常数
T#表示带符号的32位IEC时间常数
DATE是ITC的时间常数
C#表示16位计数器常数(BCD码)
ASCII字符使用单引号’’表示,每个ASCII码占用一个字节
输入常数的时候一定要使用英语的标点符号。
(内容来源网络,版权归原作者)
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
相关问答
西门子plc中vw是什么?
在西门子PLC中,VW代表变量字。变量字是一种数据类型,用于存储和处理数字信息。它可以存储整数、浮点数、二进制数等不同类型的数值。VW通常用于表示输入、输出...
西门子PLC中,VW,IW,QW,MW,SMW,LW,AIW是什么意思?
VW,V寄存器字IW,输入字QW,输出字MW,M寄存器字SMW,系统寄存器字LW,临时寄存器字AIW,模拟量输入字VW,V寄存器字IW,输入字QW,输出字MW,M寄存器字SMW,...
plc有vw20吗?
1.没有2.因为PLC(可编程逻辑控制器)是一种用于工业自动化控制的设备,而VW20并不是PLC的型号或规格,因此没有PLC有VW20这种情况。3.如果你对PLC有兴趣,可...
西门子plc有多少个vw?
西门子PLC有多少个VW取决于具体型号和系列。西门子的PLC产品线非常广泛,包括多个系列和型号,每个型号和系列都可能具有不同的VW数量和规格。通常,西门子PLC的V...
plc中vw0是什么?
VW0是V存储区用位储存的第十位,V表示数字储存区V区。PLC内部工作方式通常是采用循环扫描工作方式,在一些大、中型的PLC中增加了中断工作方式。当用户将用户程...
plc定时器pt值vw是什么意思?
在PLC编程中,PT值通常用于设置定时器的时间。其中,PT是指定时器的时间基准,而VW则是PT的一个参数,表示定时的时间长度。具体来说,VW一般用于指定定时器的值...
西门子plc中vb和vw区别?
在西门子PLC中,VB和VW是两种不同类型的变量存储区,它们用于存储不同大小的数据。1.**VB(Byte)**:VB代表字节,它是PLC中的一个数据存储区,用于存储一个字...
plc逻辑里vb和vw有什么关系?
会有冲突,VD是32位地址,也就是双字VW是16位地址,也就是字VB是8位地址,也就是字节V0.0是位地址VD2占用VW2VW3两个字VD1000占用VW1000VW1001两个字...
plc中kg与word如何换算?
在PLC中,KG和Word之间的换算需要考虑数据类型和数据长度。一般情况下,一个Word长度为16位,而一个KG的数据类型可能是32位或64位。因此,在进行KG和Word之间的...
哪位西门子PLC的大神能回答我一下西门子的V寄存器到底是怎么弄的,现在是一团浆糊?
我来回答一下你的问题,其实你可以关注一下我(控制研究控),我看你的图片是西门子200PLC中的截图,所以你的问题是西门子200PLC中的一些问题,我之前的问答回答...而...