第一次接触300,也第一次用Step 7,就遇到以上问题,希望帮帮忙分析一下问题出在哪里,谢谢!
描述:
硬件:S7-300(CPU:315-2)
软件:Step 7 v5.3 sp2
应用:通过CP341-1做主站读取3个从站的相关数据
现在已经将3个从站的数据读上来并分别以WORD格式写入3个DB中(DB61,DB62,DB63)
因为从站站数据读上来之后还要作相关运算,所以做了如下工作(举一例):
例:读取从站地址B#16#01,功能码B316#03,偏移地址W#16#00D0,数据长度W#16#20,接收数据区DB61,起始地址0
现将DB61.DBW0(该数据对应SLAVE1中的MW208即400208)作如下处理:
DB61.DBW0转换为整型A0(BCD_I)A0,A0转换为双整A1(I_DI),A1转换为浮点数A2(DI_R),将A2进行运算A2*210/4095-10,并将该运算结果写入DB3中再由WINCC读取(此程序写在FC中,并在OB1里调用该FC)
因为不能(或者可以,但我还不会)把读上来的字直接运算,所以才想到先转换为实数再进行运算,只要写入以上程序段并下载,CPU硬件在线监视就报错BCD converter error,CPU的SF灯红色
请大家帮忙,如果有更好的解决方法希望大家得出来,谢谢!~~~~~
另:我现在是分别从3个从站中读取数据,是否每个SND和RCV程序都要分配单独的背景DB,即从站1的SND和RCV对应背景DB51,DB71,从站2的SND和RCV对应背景DB52,DB72,从站3的SND和RCV对应背景DB53,DB73,
如果3个站的SND和RCV程序都使用同一个背景DB(如DB51,DB71)可不可行,如果不可行是为什么?又会出现什么情况?