西门子工业支持中心,以专业共创价值!
西门子工业支持中心,以专业共创价值!
工作部门:技术论坛 WinCC Panel 及 IPC/PG版区版主
工作职责:自由职业人,从事自动化系统PLC与SCADA系统以及IT系统的设计开发,项目咨询...
技术背景:上海大学机械系本科毕业,上海大学固体力学专业硕士研究生,资深工程师。工...
项目经验:参与多条国外进口生产线引进消化吸收工作, 培养了严谨务实的工程经验和工作...
【万泉河】有偿征集2:S7-200函数块BLOCK_MOVE
咱们做PLC标准化编程,就是有这样的好处,所有工作都可以切开,模块化,分工合作。一方面工作可以同步进行,一方面,不同的难度的工作分配给技术水平不同的同事。
比如符号表链接变量等的工作,就可以交给刚毕业的学生来做,甚至文员。
而较难的工作,则由主力工程师来做。甚至可以外包。付出一点点费用,购买一点专用技术, 拿来直接使用,也不需要理解其实现方法,更不需要读懂其程序逻辑。只需要双方约定的接口一致,或者外包的设计者给出一个完整的使用说明即可。甚至不需要给源代码。
对于需求方来说,付出少量的几百甚至几十元的费用,就可以完成一个高难度工作。比起自己吭哧吭哧研究好几天,一个礼拜,还不一定做得出,做得好。其效率,经济效益,都划算得多。
我以往老说,工控是个穷行业,其实穷也是有原因的。想想啊,原本100元可以买来的专用技术,你花1周还没做好,然后好意思说自己的身价值每天2000元?
咱们的同行,所有功能都习惯于自己做,最终就是一边抱怨需要学习的东西多,一边拿着低收入。
你的工作成果所能创造的社会效益是一定的,那么社会给你的经济回报整体来说,也是个大致合理的数值。你用低效率,换来的当然只能是低收入了。 工控行业行业薪资水平要上去,进行技术工作再分工很重要。
分工之后,一些拥有专有技术的高手,则可以靠专注于这些专有技术来挣钱。他只需要对具体的专用技术非常精通,但却不需要了解整套控制系统的工艺。完整的封装一个功能,交给需要的使用者来使用。保证其功能可靠可用即可。
想到这一点,一个应用市场隐然成型。类似于苹果商店,或者安卓应用市场,一方面需要大家都有标准化设计的理念,另一方面,也需要逐渐培养这种习惯。 所以,以后,我在介绍技术功能或者我自己有需求的时候,会尽量往这个方向走。我需要的技术,我开价悬赏。我拥有的特殊技术,我开价出售。
今天这个需求很特殊,即我需要一个BLOCK_MOV功能完全一样的区域数据拷贝的函数块。
有人问, 那你直接使用BLOCK_MOV就好了么!
不行的,我需要的是一个自己做的函数的管脚和BLOCK_MOV一样的功能。就是我在调用函数时,OUT填入VB1000, 则可以把函数内部得到的数值填充到其后面的一段数据区。
也有人会问,用INOUT管脚是否可以?
可以的。
可以以指针方式比如&VB100输入?
可以。
但是,我其实最终要复制的数据目标是TEMP区。而如果在管脚上填入&LB10, 内部函数得到的TEMP区的地址, 那到底算是上级函数的还是下级函数的呢?我想不清楚,也搞不定。
所以要求清楚了:
我需要的是一个BLOCKMOVE功能的函数块,能把一段L区的数据复制到另一段L区,另外,函数得能修改,我可以在其中加上具体的算法逻辑。
所以,我要的其实是一个编程方法。是在做SMART标准化过程中,一些功能实现过程中需要的功能。 开发的时候遇到了没搞定,用别的绕路的方法实现了。
但一直是个心病。 每当要设计一些新工艺的时候, 就想到了这个。所以特意悬赏出来,希望得到能人的帮助。
具体的回报,凡是投稿者,不管是否合格,我会回馈前面两个文章中的程序代码作为交换。二者任选其一:
1,【万泉河】付费学习:S7-200 SMART库函数多次调用的方法
而最后确认通过者,我们再协商合理的费用价格。
我如果举出来例子, 你们就会只专注于完成我例子的功能,而向我证明这个BLOCKMOVE不需要存在。
然后又完成了跑题了。
要求的任务如此清晰, blockmove的源和目的,数据类型都可以是自由的,L或者V或者M。
传送的数量是可以设置的, 而如果使用中超范围了, 那是使用的问题。 没必要现在就关心吧?
我想问,函数调用的时候可能产生40个字,退出后必须保留的过程值,你是指这些值吗?还是说确实的输出?比如一个递推滤波,运行需要记录100个字样品,但是输出却仅仅要一个字。假如就这个例子,你是指哪些?
你说的从一段复制到另一段L。那么,最极限就只能30个字节L复制到另外30个字的L。因为能用的L只有60个。应该不适合一些大用量的函数。未知你所指的是想什么传到什么,虽然你写的是L,但是显然L是不够你花销的。比如一个线性滤波程序都要几百个样品空间,如果是非线性滤波,将是一个庞大的开销。你应该是若有所指,碍于不熟。
我想你先出一个简单的例子,在话里带出相应的功能需求。类似我无限次调用无限个参数那个帖,我就是用四个加数相加获得一个和,这样的例子来带出怎样延伸到一次调用中,无限个输入参数得到无限个结果的可能性的操作。(当然无限是受到内存容量限制的)
请填写推广理由: