在OB100调用FB1为什么是这样配置的?

分享到:
238
下一篇 >

菜鸟问:

单位有台车床,属于双加工床子,分为粗车和精车两道工序。配电柜里面配置的为双NCU,每个NCU分别配置了一个操作面板,今天看这个程序是发现有好多输入和输出点在硬件上面根本找不到。两NCU之间用X122接口有一根PROFIBUS线连接起来。在看OB100调用FB1,是觉得挺奇怪的下面是调用的内容:

CALL   FB1  ,DB7

MCP1NUM                        =1

MCP1IN                             =P#I40.0

MCP1OUT                         =p#40.0

MCP1STARTSEND          =P#120.0

MCP1STARTREC             =P#124.0

MCP1BUSADR                  =6  

。。。。。。

MCP2IN                              =P#I80.0

MCP2OUT                         =p#80.0

MCP1STARTSEND          =P#112.0

MCP1STARTREC             =P#116.0

MCP1BUSADR                  =7

。。。。。

问题一:这里面定义的操作面板数量是一个,下面为什么会出现定义两个面板的开始地址,而且后面的80开始的地址,在交叉参考表里面只有I80.0,其余的点没有。


问题二:为什么这个网络配置,在网络连接上面找不到6和7这两个站点.

希望大家有知道的,给讲解一下原因,帮助一下我这初学者,先谢谢了!

高手:

楼主,我尽量帮助回答你的问题:

问题1:

从你提供的部分的程序是无法回答你的问题的,因为,在FB1中设置MCP1和MCP2的输入/输出地址并不奇怪,如果硬件实际没有连接,PLC是不会进行任何逻辑运算的,就好像所有的I/O模块端口都必须设置地址,但并非所有的模块都要接上信号。

问题2:

MCP一般通过MPI接口与PLC连接,其接口地址是在PLC硬件组态中设置的。

菜鸟:

多谢指点,我把程序给贴上去,您在帮忙看看。我看这个程序看了一段时间,也没有就找到,还还有一些IO点是从哪来的。先谢谢了!程序比较大分三次上传,下载后一起解压缩。


高手:

楼主,

1. 应该是4个压缩包,而你只贴出了3个(解压时提示缺少6352015.rar);

2. 上面3个包程序我看了,问题是这个不是原始程序,而是从PLC上载的,没有任何注释、变量表,硬件组态中可以看出的确建了2个站,但是2个站点除了连接I/O模块外,PLC没有连接其它硬件,我怀疑是上载的PLC不全造成的,另外,S7中一般不包含MCP硬件配置,需要安装GSD文件(见西门子简易调试手册);

3. 从OB100中可以看出(FB1输入参数MCPNum = 1),说明只配置了一个操作面板;

以上是我根据可以打开的(部分)PLC得到的信息。

菜鸟:

真不好意思,刚开始不知道分割压缩包,程序有点大,所以出现了失误。今天在次上贴程序,希望您热心指点。挺奇怪的,这个程序压缩之前有12兆的样子,压缩后不到一兆。前天弄还超过一兆。这个里面有符号表的,不过肯定看不懂的,一多半是德语什么的。

高手:

1. 这次解压没问题,其中**个站点有符号表,**个站点没有;
 2. 德文没关系,关键是要将WINDOWS切换到德语方式,然后,将符号表中的内容拷贝到一个WORD或EXCEL文件中,这样当你重新切换到中文时,WORD或EXCEL中的字库比较全,不会出现德文中夹杂奇奇怪怪的‘中文’乱码;这样,你就可以逐句粘贴到Google上,搞清每个变量的基本意思,搞我们这行的什么语言的PLC都要看;
 3. 我一直没搞清楚你的问题是什么,学习?排故?这么大一个PLC,靠别人不行,没有那么多时间,现在每个人都很忙,还是要着眼于自己,我们经手的机床来自世界各地,每个厂家甚至同一厂家不同产品的PLC都不同,各种语言都要非常清楚,很不容易,一般一个新产品的PLC需要几个月来消化,我建议你不要怕,一个一个地搞,*后收获是大大地,我一般都将每个程序的源程序输出后做到一个EXCEL文件中,搞清每个变量的意思后,全部一次将注释拷贝/粘贴在EXCEL程序列中相邻下一列对应变量旁边,这样整个程序一目了然,并且用另一列自建一个搜索引擎,要查什么变量,一秒钟都不用,客户打电话来,我很快就可以告诉他什么地方有问题,EXCEL是个好东西,一般一台设备的所有信息、宏程序甚至包括西门子的手册上的相关内容都可以收入一个文件中不同的表,无需每次打开S7或去查手册。
 4. 有什么问题到S7300论坛哪里挂帖子,那是个我所见过的*好的论坛,只要你方法得当(问题有针对性),什么问题都能得到解决!

高手:

问题1:
 "P#I 80.0"是个指针,也就是说它只是一个起始地址,换句话说所有MCP2的输入信号都是从这个地址开始的,因此,PLC会去读取I 80.0开始的整个I地址范围,例如:假设在硬件组态中给MCP2分配的输入地址范围是80~84,那么PLC会依次扫描I80.0~I84.7状态,还是那句话,FB1里面写了,并不表示一定接了输入硬件;
 问题2:
 从硬件组态中可以看出,二个站点用MPI接口连接了,见下图:
 


 从图中可以看出
 1. 地址中没有6、7,怀疑是不是硬件组态中丢失了MCP这部分呢?
 2. DP的地址与MPI相同?没有任何连接?

菜鸟:

主要是学习的,这里面有好多点我找不到从那来的。车间做维护的,基本上不怎么翻译这个注释的意思。还有一个的符号表这两个差不多,程序好像差别也不大的。这两个NCU有一边报警时,两个面板上都会出同样的报警,所以有时候都不确定到底是那边出的报警。不过,我还真的没有看见过,MCP在网络组态里面可以看见的。也不知道什么原因的。

高手:

双NCU、双站点,那么每个站点的硬件组态是独立的,这样MCP也应该是对应各自的PLC,每个PLC里应该是通过各自的FB1独立扫描和处理各自的MCP信号。

我记得标准的MCP好像是可以用机床参数来配置的,包括地址设置,只是很长时间不摸了,有点记不得了,可以去查查手册或到西门子400去咨询一下。

我查了一下手册,MCP的地址应该是通过其上拨码开关设置的,NCU通过PLC中用FC19来控制信号输入/输出, FC19是在FC20中通过接口参数选择调用的。
 

菜鸟:

非常感谢,明天我去现场看看调试手册!


你可能感兴趣: 工控菜鸟园 数控系统 SINUMERIK PLC
无觅相关文章插件,快速提升流量