要在ob1中调用fc1,想要在fc1的接口部分直接写入一16位的数字,不能用地址代替,该怎么做?

作者&投稿:储鸿 (若有异议请与网页底部的电邮联系)
西门子OB1调用FC时的问题~

主程序放在OB1中,如果有一个程序需要经常调用就把程序写在FB中,每次调用后用不同的DB背景块,FC主要用来计算一些数据运算,不具有保存数据功能

#include int main(){ int year,n=0; for( year=1;year<=3000;year++ ) { if ( (year%4==0 && year%100!=0) || year%400==0 ) n++; } printf("n=%d
", n ); return 0;}

如果你定义的是In,类型word,那么直接输入是可以的,但如果你定义为In-Out或out,那就不行。

没有什么特别的吧,应该是什么类型的都可以定义,只要你用的~一定要保证你输入的地址的类型和定义的类型一致你接口的那个位置是要输入什么样的数据?

要直接写入一个16进制的数如w#16#0001,定义的是word但直接写这个数是不行的

就是的,刚弄的是IN-OUT,没用IN,以为IN也一样,现在可以了


step7多次调用同一个FB块,fb块又调用FC块怎样监控FC
没必要这么复杂啊,你可以在FB中编辑好多次调用的程序,然后直接用FC去调用FB功能块,然后从OB1组织块中调用FC,这样既方便又便于监控FC模块。

请教高手,S7-300编程中为何FC105块一插入OB1块中,整个程序会自动停止...
你需要下载FC105,否则OB调用FC105失败从而导致OB121程序错误,由于你没有下载OB121进入你的PLC,因此,系统由于找不到OB121从而进入停机状态。

s7 300的FC块没有调用里面的程序会执行吗
肯定不会执行,FC作为子程序受到OB1主程序调用才可以,所以你必须在OB1里调用FC或者FB才能执行,希望你能明白

PLC中FC功能定义的输出变量怎么在OB1中调用时怎么没作用
有没有作用不是你这么提问的!变量定义、程序逻辑、程序调用等环节都可能有问题,你不说清楚让别人怎么帮你?

在STEP7 OB1块中如何写入FC105程序?
在 OB1编程界面的左面,有库,直接将FC105拖拽到梯形图上即可

用西门子plc的fc功能反复调用控制行车正反转,除了自锁,其他怎么编...
应该采用FC、FB,就采用相应的功能;S7-300\/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。结合起来就能实现一个复杂的控制系统。就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。在S7-300\/400PLC中,写在OB1块里的程序就是主程序...

西门子plc编程在什么情况下用OB、FB、FC、SFB、SFC块?
在S7-300\/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。FC运行是产生临时变量执行结束后数据就丢失---不具有储存功能 FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能 系统功能块(SFB...

西门子s7300中的fc105,fc106程序怎么用
FC105是处理模拟量(1~5V,4~20MA等信号)输入的功能块。FC106是处理模拟量(1~5V、4~20MA等信号)输出的功能块。接口模块 (IM):接口模块用于多机架配置时连接主机架(CR)和扩展机架(ER)。S7-300通过分布式的主机架和3个扩展机架,最多可以配置32个信号模块、功能模块和通信处理器。

西门子300中Fc12怎麽用
FC11"PNIO_SEND"FC12"PNIO_RECV"通讯块FC11“PNIO_SEND”和FC12“PNIO_RECV”的特性:FC11和FC12是同步通讯块。块被包含在S7-300控制器“SIMATIC_NET_CP”库中。块必须被调用在OB1中 功能调用结束通过“DONE”,“NDR”或“ERROR”表示。FC11“PNIO_SEND”通讯功能块的特性:作为PROFINETIO...

西门子plc300\/400为什么要在组织块OB1中编常开常闭信号
OB1里面是主循环,别的FC等要在这里调用才能执行 除了OB1,还有OB100,CPU上电后,这里面的程序只会执行一次 具体你可以查相关手册

鹤峰县15362258156: 要在ob1中调用fc1,想要在fc1的接口部分直接写入一16位的数字,不能用地址代替,该怎么做? -
廉终贝友: 没有什么特别的吧,应该是什么类型的都可以定义,只要你用的~一定要保证你输入的地址的类型和定义的类型一致你接口的那个位置是要输入什么样的数据?

鹤峰县15362258156: 大家好!我用的是S7 - 300[PLC,在主程序中调用自己编写的FC1,在OB1中调用它,在监控时为什么显示虚线? -
廉终贝友: 想监控的时候看到是实线你需要在你FC1的最后加上两条语句SET和SAVE;当然这样的话不管程序执行结果如何都是实线,如果你需要在程序执行正确时才变实线,出错时虚线就需要其他编程了,详细的东西你自己去看手册之类的吧,关于PLC状态寄存器中的BR位.

鹤峰县15362258156: 老师您好,能否也给我一份西门子模拟量组态的实例 haihuady@163.com -
廉终贝友: 西门子模拟量组态如下:1、在符号表里定义一个模拟量输入AI:PIW2562、siemens的block目录下新建一个FC1,打开FC1,在FC1编辑界面里调出功能块FC1053、FC105参数设置中文说明:FC105: SCALE功能接受一个整型值(IN),并将其...

鹤峰县15362258156: s7 - 300 FC能单独仿真吗 -
廉终贝友: FC需要调用才被执行,所以,必须要在OB中调用,如果只是想演练FC中的算法,你直接写在OB中不就可以了么.对于高级语言编程也一样,你无法只写一个函数来测试,你需要在主程序内调用这个函数才能了解程序的运行状况.

鹤峰县15362258156: 在FC里写了一些子程序 想在OB1中按程序进行控制 请问在OB1中怎么添加FC -
廉终贝友: 打开ob1,然后在左侧的fc块里找到你做的fc,然后双击一下,就进ob1里面了.

鹤峰县15362258156: 在西门子PLC中,使用局部变量定义变量时有什么方式来判断呢.我老是弄混,有能说的容易懂得先谢了. -
廉终贝友: 局部变量里的是临时数据,一般FC里用的比较多,打开FC,在顶端会让你定义IN,IN-OUT,OUT等等,比如你有4个电机,操作都一样,那么你要写一个电机启停的程序,在这个程序里你定义了启动,停止,运行输出,然后对FC用局部变量编程...

鹤峰县15362258156: 程序中的比如 FC1和 FC2..它们是先后循序扫同时扫描描还是
廉终贝友: 根据FC1和FC2在OB1中的位置,决定调用扫描得先后顺序,如果FC2先调用,则先扫描!

鹤峰县15362258156: 西门子s7 - 300 plc 程序ob1调用fc1仿真器显示不正常,求高手解答!详细说明在下面 -
廉终贝友: 因为FC有个特性,即各个FC所使用的系统地址是共用的,你可以发现,FC中使用的系统地址为L区域的地址.西门子的PLC的操作系统在调用完FC后,并不负责将FC所分配的地址内容清零,所以,FC中使用数据需要遵循一个原则:先赋值后使用,否则,很有可能使用的是上一次FC调用完没有清理的垃圾数据.你的情况就属于上面我说的情况,也就是第一次正常,后面调用的可能正常,为啥说可能正常呢?那取决于后面调用的FC是否正好要用到这些没有清理的数据,如果这些数据正好匹配,那么就会显示正常.

鹤峰县15362258156: 西门子PLC 程序分级结构是什么意思?又是怎样一种形式呢? -
廉终贝友: 分级结构就像高级语言中的函数调用函数.C语言程序入口是main函数,西门子的程序入口是组织块OB,低档PLC的只有OB1,高档还有其他OB,类似事件驱动的OB.比如你程序中写了一个FC1,默认有一个OB1,PLC上电调用OB1,OB1结束,程序就结束,一直这样循环执行. 那么OB1调用FC1,那么程序就会执行到FC1,如果OB1不调用FC1,那么FC1不会被执行到.

鹤峰县15362258156: 主程序在执行过程中如果需要某一子程序可以通过什么 -
廉终贝友: 在西门子plc200中,程序是先运行主程序的,在主程序里如果遇到调用子程序的指令时,如果该指令被激活那么就跳到子程序运行里面的程序,主程序停止运行,在plc300中,一般OB1为主程序,其他的都可以认为子程序,在主程序OB1中调用各种FC,SFC,还有OB块等等

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网