1.设计思考
我现在手上有一个三线10kΩ的滑动变阻器,想让其当作模拟量接入西门子PLC中,外部改变电阻,PLC程序中能看到对应的阻值或电压,这样可以练习模拟量输入这个知识点!
2.了解模拟量的种类
模拟量一般有电压型和电流型两种,电流型相比于电压型更加稳定,抗干扰能力更强。
我现在用的是电位器,其对应的应该是单极性的电压型,0-10V最为标准,PLC中对应0-27648
3.确定西门子PLC的模拟量输入
西门子PLC对应的型号是S7-1200 CPU1214C DC/DC/DC,提供两路模拟量输入
而且在PLC内部模拟量通道设置里面,该型号也只支持0-10V电压型,通道地址为IW64-IW67
因此,确定了电位器接入PLC中将以单极性电压信号的形式进行标定。
4.思考如何进行接线
目前想到两种方式:
①使用标准的板载10V电压进行供电,这样10V对应10kΩ,电压和电阻刚好满量程对应,这是极好的,只可惜开关电源出来的直流电没有10V,所以这种做法只能pass了;
②第二种方式就是利用禾川E600变频器里面的模拟量10V和GND对电位器进行供电,同时PLC的模拟量输入公共端2M也用这个10V供电,理论上来讲是可行的。
接线图如下:
5.补一下理论知识
模拟量采集相关方式:
6.PLC配置及程序
这里不用配置,直接把线接好,模拟量对应的变量就是这里的IW64
然后定义一个变量,就可以使用标准化和缩放指令进行程序编写了
标准化指令计算公式:OUT=(VALUE - MIN)/ (MAX - MIN)
标准化指令相当于把输入的模拟量转换为一个百分比
缩放指令相当于把这个百分比转化为对应的电压/温度/阻值等实际工程量
所以上面的程序大致是:
电位器对应的模拟量接入,在IW64中显示,以0-27648对其进行约束,并且按照上门的标准化指令计算公式将其转化为一个百分比。
之后的缩放指令就是将这个百分比按照人们期望看到的物理量进行等比例放大,比如我想看到实际阻值,那么范围就是0-10kΩ。
电位器旋转多少阻值,程序里面这个变量就显示多少的阻值!
7.实际情况是这样的
实际情况:
当电位器一旦这样接入后,哪怕我旋转到最大阻值,也不是10kΩ了,而且会变成2.7kΩ左右,其他的倒没有什么问题,就是感觉这个电压和阻值没对应上,最大阻值变了!
根据初中物理的知识,总阻值变小,肯定是并联了电阻才会变小,所以这样的接法必定是哪里并联电阻进来了。
查找原因:
所以我用万用表测量了一下10V和GND之间的阻值,发现有3.6kΩ
3.6kΩ并联10kΩ,出来的总电阻大概为2.64kΩ,那这个就一下豁然开朗了,跟程序里面的数据也能对应的上,大概率就是这个原因!
解决办法:
这个没办法解决,只能再换个方法了。
8.换第三种方案解决
不要受到电阻并联的影响,那就不能用变频器提供的10V电源了,而是用PLC自带的24V电源
所以重新进行了接线:
但这种接法需要注意,24V对应的10kΩ,但PLC的模拟量只支持0-10V,那就意味着我们在调节的时候不能超过10V的量程,实测超过的话PLC会报错。
程序上我也做了调整,缩放指令我直接填0-10,意思是输出实际电压,这样我就可以用万用表直接测量电位器两端电压看是否与程序保持一致。
需要注意的唯一一点就是:电位器不要调得太大,电压不要超过10V即可!
以上便是整理调试的思路