高手,教我一下这个PLC程序该怎么做! 点击:1035 | 回复:11



爱上电工

    
  • 精华:0帖
  • 求助:8帖
  • 帖子:59帖 | 895回
  • 年度积分:0
  • 历史总积分:2086
  • 注册:2008年6月23日
发表于:2011-01-10 23:03:04
楼主

 问一:一西门子300PLC,硬件组态如下!我想知道怎么做用PLC做+10—-10输出!是不是跟出4---20mA输出一样!

 

问二:功能块如下怎么做此块的背影数据块
问三:图如下,如果我想改变测量信号的输入类型,是不是要改变跳线的位置。怎么知道相应跳位置是对应你所需要的信号
 



西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2011-01-11 00:09:39
1楼

1、传感器输出类型是由给PQW口输出int值内决定的。。输出方式和4-20mA是一样的。只是需要注意的是,对于4-20mA是0到+27648 对于-10V到+10V的输出是-27648到+27648。当然,其实最简单的办法是用FC106号函数。直接是real型转int型。

2、背景数据块是定义fB函数时,添加stat类的变量。然后在调用该db时,相应顺序的db块内就有了该stat值所代表的db地址。

3、改变测量的输入类型除了在组态界面中的测量信号选择和测量范围选择相应的类型外。还需要根据电压信号还是电流信号决定接线图。。以7nf00为例,电压信号是不需要将2和22短接 3和33短接的而电流信号就需要。。。其实讲白了,所谓短接的目的就是并联一个标准电阻(250欧)将电流信号转换成电压信号。实际上模块还是测的电压。。。

西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2011-01-11 00:16:29
2楼

对第3、可能我理解错了你的意思。对于你选择的这个模块来说,哪个选项是你需要更改的ai通道。其实在配线图中有很明确的说明了。。。这个你应该仔细看看样本后面的配线图。。

xjqwork

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 124回
  • 年度积分:0
  • 历史总积分:886
  • 注册:2010年5月26日
发表于:2011-01-11 11:08:10
3楼

对于问题1:是外部需要控制的元件来决定你采用那种方式,他们在PLC内部的处理是一致的

问题2:对调用的FB,会自动产生其背景块,无需手动编辑

 

问题3:硬件上不需要设置,只要在组态上设置就可以了

爱上电工

  • 精华:0帖
  • 求助:8帖
  • 帖子:59帖 | 895回
  • 年度积分:0
  • 历史总积分:2086
  • 注册:2008年6月23日
发表于:2011-01-12 20:33:37
4楼
引用西玛仪表 028-66505957 13808018567 的回复内容:

1、传感器输出类型是由给PQW口输出int值内决定的。。输出方式和4-20mA是一样的。只是需要注意的是,对于4-20mA是0到+27648 对于-10V到+10V的输出是-27648到+27648。当然,其实最简单的办法是用FC106号函数。直接是real型转int型。

2、背景数据块是定义fB函数时,添加stat类的变量。然后在调用该db时,相应顺序的db块内就有了该stat值所代表的db地址。

3、改变测量的输入类型除了在组态界面中的测量信号选择和测量范围选择相应的类型外。还需要根据电压信号还是电流信号决定接线图。。以7nf00为例,电压信号是不需要将2和22短接 3和33短接的而电流信号就需要。。。其实讲白了,所谓短接的目的就是并联一个标准电阻(250欧)将电流信号转换成电压信号。实际上模块还是测的电压。。。





   

   2第二问我还不明白,您能发个图上来吗!谢谢您

 

爱上电工

  • 精华:0帖
  • 求助:8帖
  • 帖子:59帖 | 895回
  • 年度积分:0
  • 历史总积分:2086
  • 注册:2008年6月23日
发表于:2011-01-12 20:34:25
5楼
引用xjqwork 的回复内容:

对于问题1:是外部需要控制的元件来决定你采用那种方式,他们在PLC内部的处理是一致的

问题2:对调用的FB,会自动产生其背景块,无需手动编辑

 

问题3:硬件上不需要设置,只要在组态上设置就可以了





  偶菜鸟,谢谢你的问答,我对第二问还不是很清楚!

初阳

  • 精华:0帖
  • 求助:1帖
  • 帖子:7帖 | 22回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2006年3月19日
发表于:2011-01-12 21:32:02
6楼
回答你的第三个问题,在硬件上需要调整跳线,模拟量输入模板应该是331吧,以八个通道的来说,它有四个跳线块可以调整ABCD四个位置,每个控制两个通道,你想要输入什么信号,你就要把跳线调整的什么位置上,你给的图上面前三个要在C上面,最后一个要在D上面,根据需要调整,要是你有模板的话一看就明白了。祝你早日成功。

梦飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 404回
  • 年度积分:0
  • 历史总积分:4180
  • 注册:2007年6月19日
发表于:2011-01-13 09:38:19
7楼
学习,学习了。有详细资料吗?

西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2011-01-13 23:19:04
8楼

针对第二个问题,楼主应该好好学习下西门子FC和FB的区别。。。这个是个基础问题。

我以(a+b)×c=e来举例。假如使用fc来完成。那么就是先a+b=temp1   再temp1×c=e。但是有时我们想在ob1中知道temp1等于几,那怎么办?ob1是无法调用fc中的temp区的temp1变量啊。这个时候假如用fb来完成,那么跟fc相比,我们不使用temp区的temp1变量。而是使用stat区的d变量。先a+b=d,再d×c=e。在ob1中调用fb1,制定给fb1一个背景数据块dbX(这里我指定是db1)。你打开db1看看。。发现d变量有个db1.dbw8地址。这个时候在ob1中就可以直接将db1.dbw8来参与其他的计算。。。。

西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2011-01-13 23:24:08
9楼

楼主看第一张是定义fb1

第二张是ob调用fb1后设定的db1.内的数据地址

 

第三张图,db1.dbw8就是d的值。。。这里实际算的是(db2.dbw0+db2.dbw2)×db2.dbW4=db2.dbw6

假如楼主又想(db3.dbw0+db3.w2)×db3.dbw4=db3.dbw6,那么ob1再调用一次fb1,但是这次指定的db就该轮到db4了。。。

爱上电工

  • 精华:0帖
  • 求助:8帖
  • 帖子:59帖 | 895回
  • 年度积分:0
  • 历史总积分:2086
  • 注册:2008年6月23日
发表于:2011-01-16 19:12:00
10楼
引用西玛仪表 028-66505957 13808018567 的回复内容:

楼主看第一张是定义fb1

第二张是ob调用fb1后设定的db1.内的数据地址

 

第三张图,db1.dbw8就是d的值。。。这里实际算的是(db2.dbw0+db2.dbw2)×db2.dbW4=db2.dbw6

假如楼主又想(db3.dbw0+db3.w2)×db3.dbw4=db3.dbw6,那么ob1再调用一次fb1,但是这次指定的db就该轮到db4了。。。




     谢谢你!、 我明白了

爱上电工

  • 精华:0帖
  • 求助:8帖
  • 帖子:59帖 | 895回
  • 年度积分:0
  • 历史总积分:2086
  • 注册:2008年6月23日
发表于:2011-01-16 19:13:39
11楼
引用初阳 的回复内容:回答你的第三个问题,在硬件上需要调整跳线,模拟量输入模板应该是331吧,以八个通道的来说,它有四个跳线块可以调整ABCD四个位置,每个控制两个通道,你想要输入什么信号,你就要把跳线调整的什么位置上,你给的图上面前三个要在C上面,最后一个要在D上面,根据需要调整,要是你有模板的话一看就明白了。祝你早日成功。



   非常感谢你对我的回复

热门招聘
相关主题

官方公众号

智造工程师