湖北省恩施市西门子办事处---华中Siemens(授权)总代理
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 西门子PLC
- 西门子伺服电机
- 西门子触摸屏
- 西门子电缆
- 西门子变频器
- 西门子模块
- 联系电话
- 13510737515
- 手机号
- 13185520415
- 联系人
- 董海波
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
- 更新时间
- 2024-06-19 07:00
目的:使用scl2指令将模拟量转换得到的数据0-6000(bin)对应缩放到-100--200(bcd)摄氏度显示输出。
程序如下:
scl2控制字解释:
200:cp1h的模拟量输入通道1
d100:偏移量(带符号bin)详见下图
d101:Δx(带符号bin)详见下图
d102:Δy(bcd)详见下图
d200:转换结果通道
结果:程序执行后就可以实现0-6000(bin)转换到-100--200(bcd)摄氏度显示了。
注:因为bcd数是以十六进制来表示十进制数据的,因此对应的温度值应该用16进制方式去监视。例如:当200ch中的数据是&4000(即6.66v电压输入),那么用十六进制监控数据d200应该显示#100。
&符号表示十进制数;#表示十六进制数。
scl指令应用案例
条件:欧姆龙plc变送器的输出信号为0-10v,对应压力为0-400mpa;cp1h的模拟量输入量程设置为0-10v,分辨率选择6000。
目的:使用scl指令将模拟量转换得到的数据0-6000(bin)对应缩放到0-400mpa(bcd)显示输出。
程序如下:
结果:程序执行后就可以实现0-6000(bin)转换到0-400(bcd)的压力值了。
注:因为bcd数是以十六进制来表示十进制数据的,因此对应的压力值应该用16进制方式去监视。例如:当200ch中的数据是&3000(即5v电压输入),那么用十六进制监控数据d200应该显示#200。
&符号表示十进制数;#表示十六进制数。
使用cpm1a-ad041的模块采集模拟量4-20ma的信号,该模拟量信号取自一位移传感器信号,代表一个0-100mm的距离,要怎么才能把输入通道里的数据转换成所对应的这个距离值呢?
可以使用scl指令做此类的定标转换,该指令的作用是把一个16进制数据线性转换成一个bcd码的数据,这条指令有3个操作数见图1,s为源字,p1是参数首字,r是结果字,从p1到p1+3要设置4个值,p1是ay,p1+1是ax,p1+2是by,p1+3是bx(见图2),在此例中因为输入的数据范围是0-1770hex,所以p1+1和p1+3分别是0和1770,而定标结果是0-100,所以p1和p1+2分别是0和100.具体可以这么做,例如ad041的输入通道是002,把dm0作为参数首字,d10作为结果字存放0-100的距离值。
scl 2 dm0 dm10
在执行scl指令前先用mov指令对dm0-dm3里分别赋值0,0,100,1770。之后scl指令就能把输入的模拟量值定标成0-100的距离值了。
cpm1a-mad02-ch使用了4路输入,但是它的输入数据是每两路放一个通道的,这样就无法进行监视或处理单独一路的输入数据了,有什么办法可以把两路数据分离开吗?
可以用movd指令,分别把两路数据传送到一个单独的通道。该指令有3个操作数,
操作数排列如图1,s是源字,也就是用模拟量输入的通道,di是指定数位号,每个数字指定方式如上图2,也就是指定从源字中哪一个数字开始传送(一个通道是4个16进制数字,一路输入是半个通道,也就是2个16进制数字),传送几个数字,传送到目标通道的哪个数字,d就是指定目标通道。例如现在mad02的第一第二路输入的通道是002通道,现在要把第一路数据传送到dm0,第二路数据传送到dm1,movd指令
cpm1a-ad041的外部输入电流和电压信号要如何接线?
电压输入:把外部的输入正信号接v in,负信号接com端;
电流输入:把模块上v in和i in的端子短接后接输入正信号,负信号接com端。
cpm1a-mad02-ch的参数应该怎么设置
在n+1通道(n为分配给cpu单元或前一个扩展单元的后一个输出通道)的每个位对应的作用按照如下表分配,在量程对应的位是设定输入输出的量程范围,在启动位和平均值对应的位是设定该功能使用与否,例如4路输入1路输出全用4-20ma,平均值功能不用,就在n+1通道设置c3ffhex就可以了。
展开全文