是这样的,公司生产的产品功能都是一样的,只是控制的点数多少的问题, 比如说,此台设备有10个温度测量, 另一台设备,客户要求5个温度测量就可以了,10个人家不要。这样的话我就得去改程序,因为输入点少了5个, 所以之前在第10个温度测量之后的输入点都往前移了(否则如果空着就浪费了PLC的点数,有可能会多加一个模块,造成资源浪费),我的想法是,既然产品的功能都是一样的, 那能不能我这是一套万能程序, 不管你怎么改,只要配置好,程序就会按照配置的参数进行逻辑判断?
当然这只是一个想法,目前还未找出有效的方法,只是能提供出一个大致的思路, 见附件的图。
s7-1200 的DB块数据是可以配置为掉电永久保持的。 那我就要从DB块这里入手,首先我做一个上位机,上位机的列表如图右边所示,编号对应的是输入点,编号0对应的就是I0.0,对应的数据块是DB10.DBB0, 编号1对应的就是I0.1,对应的数据块是DB10.DBB1, 依次往下推,我指定好此输入点的功能类型,同时我做好和上位机的协议,比如说规定启动按键的功能代码是03,停止按键的功能代码是04, 那么我配置好之后,通过通信,数据下发下去,PLC接收后处理,于是 DB10.DBB0 = 03, DB10.DBB1=04并且保存了,这样,在按下0.1的时候,我就会判断I0.1&DB10.DBB0 = 03吗? 如果是,就要输出Q0.6
问题: 1. 不知道怎样做才能输出Q0.6, 因为我目前不知道如何才能将I0.0映射到Q0.6, 虽然我清楚,但是程序不清楚。
2. 大家有没有更好的思路?比方说进行配方什么的?请高手们各抒己见。
图片说明:
最佳答案
你的基本思路是对的。
将所有输入点、输出点都和DB块信息关联,实现一一对应。
你遇到的问题,其实应该用一个FC就可以实现了。
你在生成DB块信息的时候,同时生成一个FC,将DB块的输出信号输出到输出点上;将输入点信号拷贝到DB块中。
不同的工程,通过Excel和VBA就实现了自动生成代码。
提问者对于答案的评价:
thanks
专家置评
建议使用STL语言基于AR1和AR2编写数据传递的程序,可以写在FC中,但是不要写在FB中
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc189317.html