用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是如何存储浮点数的?
例如浮点数:178.29
1、分别把浮点数的整数部分和小数部分转换成2进制。
整数部分:
采用“除 2 取余,逆序排列”法。
178/2=89 … 余0
89/2=44 … 余1
44/2=22 … 余0
22/2=11 … 余0
11/2=5 … 余1
5/2=2 … 余1
2/2=1 … 余0
1/2=0 … 余1
逆序排列,所以 (178)₁₀ 的二进制是 (10110010)₂
小数部分:
采用“乘 2 取整,顺序排列”。让小数一直乘2,小于1则用结果继续乘,大于1则结果减1继续乘,等于1则结束。
0.29*2=0.58 … 取整数部分0
0.58*2=1.16 … 取整数部分1
0.16*2=0.32 … 取整数部分0
0.32*2=0.64 ... 取整数部分0
0.64*2=1.28 ... 取整数部分1
0.28*2=0.56 ... 取整数部分0
0.56*2=1.12 ... 取整数部分1
0.12*2=0.24 ... 取整数部分0
0.24*2=0.48 ... 取整数部分0
0.48*2=0.96 ... 取整数部分0
0.96*2=1.92 ... 取整数部分1
0.92*2=1.84 ... 取整数部分1
0.84*2=1.68 ... 取整数部分1
0.68*2=1.36 ... 取整数部分1
0.36*2=0.72 ... 取整数部分0
0.72*2=1.44 ... 取整数部分1
0.44*2=0.88 ... 取整数部分0
0.88*2=1.76 ... 取整数部分1
0.76*2=1.52 ... 取整数部分1
0.52*2=1.04 ... 取整数部分1
0.04*2=0.08 ... 取整数部分0
0.08*2=0.16 ... 取整数部分0
0.16*2=0.32 ... 取整数部分0 //从这里就与第三行相同,后面的运算会一直循环下去。
0.32*2=0.64 ... 取整数部分0
0.64*2=1.28 ... 取整数部分1
0.28*2=0.56 ... 取整数部分0
0.56*2=1.12 ... 取整数部分1
...
由于等于1则结束,从上面的计算可以看到是无法等于1了。
顺序排列,所以 (0.29)₁₀ = (0.0100101000111101011100001010001...)₂
合起来即是:10110010.0100101000111101011100001010001...
2、转换成计算机存储形式的二进制浮点数
把小数点移动到整数位只有1,即为:1.01100100100101000111101011100001010001...*2^111,111是二进制,换算成十进制为7,由于左移了7位,所以是111。
3、阶码(指数)
阶码(指数)的计算公式:阶数(指数)+偏移量(单精度浮点数指数偏移值是127)
即:111+01111111=10000110 (7+127=134)
4、尾数
小数点后面的数,即01100100100101000111101 011100001010001...
由于尾数为23位,保留前23位,其他省略。
小数点前面的1去哪里了?由于尾数部分是规格化表示的,最高位总是1,所以省略不存。这样尾数部分多了 1 位,提高了精度。
5、符号位
由于浮点数是正数,故为0(负数为1)
6、结果
最终结果为:
(178.29)₁₀ = (01000011001100100100101000111101 )₂
7、验证
相关问答
plc除法怎么保存小数?
在PLC(可编程逻辑控制器)中,保存小数可以使用浮点数数据类型。浮点数数据类型允许存储和处理小数值。以下是保存小数的一般步骤:1.在您的PLC编程软件中,选...
三菱PLC怎样写入小数,详细点OK——————————急三菱PL...
[最佳回答]比方说我输入5.432,那么它在PLC里面是以整数存储的.也就是说高位放整数部分,低位放小数部分,如果你要进行计算,比方说你要加3.141,实际上就是5432+3...
plc怎么除数的小数点?
2.将被除数和除数赋值给浮点数变量。3.使用除法指令或函数进行除法运算,得到结果。4.将结果赋值给另一个浮点数变量,即得到了小数点后的结果。需要注意的是...
如何让plc显示小数点的数?
在PLC(可编程逻辑控制器)中显示小数点数通常涉及到以下几个方面:1.**数据类型选择**:-在PLC程序中,选择合适的数据类型来存储小数点数。例如,对于西门...
plc西门子s7-200smart中vd存储器可以存小数并且显示小数吗?
可以显示小数,直接用数据格式R(如mul_R)的运算指令就可以了如果需计算的数据不是小数,而结果需为小数,则要先用转换指令DI-R讲数据转为浮点数再运算。也可已先...
三菱PLC要在程序里面有小数点运算怎么写程序?列:K0.2*20之类的运算!谢谢大家?
程序里面有小数点运算要转化整数才可以,用浮点运算。浮点数在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数...
三菱pLc怎么小数转整数?
使用三菱PLC将小数转换为整数涉及以下步骤:将小数乘以适当的比例因子,使其转换为整数。例如,要将小数点后三位的小数转换为整数,使用比例因子1000。使用M...
plc中小数运算用什么数据类型?
PLC中小数用浮点数数据类型。一般PLC中数据型如下:1,1数据长度为BOOL型。2,8位数据长度为BYTE,CHAR,SINT3,16位数据长度为WIRD,INT4,32位数据长度DWOR...
plc中计数器能计小数吗?
在PLC中,通常使用的计数器是以整数形式进行计数的,所以它们通常不能直接计数小数。然而,您可以通过将小数乘以一个固定倍数,然后将结果四舍五入为整数,来间...
基恩士PLC编程的问题,计算除法时,有小数该怎样处理?
我有时的做法是把被除数倍乘放大。在基恩士,应该用到临时数据存储器TM00,TM01。在手册描述中“余数存入TM01”.仔细看看编程手册,在软件上模拟一下。我有时...