热门搜索:

上海西邑电气技术有限公司成立于1996年。在西门子公司广大同仁和工控领域各界朋友的关怀下埋头发展,一路走来已成西门子合作伙伴中的佼佼者。总部设在上海,办公面积1500多平方米,员工150余人。

    西门子CP1612网卡

    更新时间:2020-09-21   浏览数:165
    所属行业:机械 电工电气 工控系统及装备
    发货地址:上海市金山区  
    产品规格:西门子CP1612网卡
    产品数量:500.00个
    包装说明:全新原装
    单 价:面议

    西门子CP1612网卡

    信誉,客户至上是公司成立之初所确立的宗旨,在公司领导的严格要求和员工们不折不扣地贯彻执行下发展延续至今。“假一罚十”一直是我公司的主动承诺。
    承诺一:1、保证全新原装进口   
    承诺二:2、保证安全准时发货
    承诺三:3、保证售后服务质量
    流程一:1、客户确认所需采购产品型号
    流程二:2、我方会根据询价单型号查询价格以及交货期,拟一份详细正规报价单
    流程三:3,客户收到报价单并确认型号无误后订购产品
    流程四:4、报价单负责人根据客户提供型号以及数量拟份销售合同
    流程五:5、客户收到合同查阅同意后盖章回传并按照合同销售额汇款到公司开户行
    流程六:6、我公司财务查到款后,业务员安排发货并通知客户跟踪运单


    随着200CN产品的退市和200Smart产品的升级,200Smart产品的功能越来越丰富,产品的市场份额也在不断增加,尤其近的V2.4版本增加了PROFINET控制器功能、默认携带开放式通讯库,给广大中小型项目的用户带来很大福音,相信该产品的市场会越来越大。

           我们在使用200CN、200SMART的时候,是否遇到过子程序堆栈限制问题呢?我是经常遇到,系统给子程序开辟的堆栈是64个字节,真正给用户做变量来使用的其实只有60字节,如果使用四字节变量,多也就15个变量吧!

           原来使用200CN时,我尽量控制接口变量的使用数量,但是这又是矛盾的:使用接口变量,有利于子程序的标准化,将子程序中的全局变量使用数量减少,甚至全部使用接口变量,才算的上是子程序块满足标准化的条件吧!如果子程序接口变量数量达到上限,子程序编程时必须采用全局变量的话,会降低子程序标准化的可能性,只要子程序中使用一个全局变量,那么这个子程序就不是标准化的块,需要重复使用时修改其中的全局变量,防止重复的全局变量导致程序逻辑出现异常。

          上个月在调试一个200Smart项目时发现,200Smart子程序的堆栈区,除受60字节限制外,还受16个变量的限制,即使我使用超过16个BOOL变量也是不允许的,16个BOOL变量才2字节啊,为啥剩余的L区地址就不让我用了呢?估计系统是按四字节变量计算堆栈使用情况的吧,16个变量,无论你使用BOOL型还是Real型,统统按变量个数计算,超出就不能用啦。

          针对系统的这一特性,我们怎么来大化的使用好200Smart的堆栈呢?下面我来说说我规避200Smart子程序堆栈限制的几个方法,和大家一起探讨交流,不当之处请各位专家批评指正!

    方法1:

           将BOOL型变量改成WORD型变量,一个WORD型变量可以包含16个位变量,这样在子程序中结合逻辑与指令,就可以顺利取出字变量中的位,进行位逻辑判断并将位输出顺利赋值到字变量的某个位,通过两个字类型的接口变量即可实现16位的输入、输出,参考附图1中的两个字类型的接口变量:

           

                                                                      图 1

    方法2:

           对于BOOL型接口变量多的子程序,压缩成WORD型变量外,需要多个两字节、四字节变量的时候,我一般采用几个DWORD型接口变量将全局变量的地址,传送入子程序中,子程序利用这些地址,通过间接寻址、数学和逻辑运算后,将计算结果通过间接寻址直接写入全局变量中,规避了子程序堆栈字节数和变量数的限制。

          主程序中调用子程序也很简单,直接赋值WORD型实参和DWORD型地址实参即可,参考下图2:

            


                                                                 图  2

            方法2中使用了间接寻址,存在的弊端是其他人比较难读懂程序,必要时要结合交叉索引检查变量使用情况。

          如果项目允许,我尽量将子程序简化,使用少的接口参数结合接口参数数量和类型的压缩,来实现多数项目程序的编写。

    S7-200的子程序SUB,一旦写好,用在程序中之后, 是不可以修改其输入输出管脚的。 因为你一旦动了管脚接口,调用这个子程序的地方,就会报错。报错以后还没法和STEP7一样可以通过更新只更新改动部分。


    西门子CP1612网卡




    正常处理的只有把原本的调用删掉, 从头重新调用,并为每个接口逐个分配变量。

     

    这相当讨厌。

     

    比方说我一个底层的设备,如果调试中发现需要增加些功能,实在不可避免决定要增加接口。而我主程序中已经对这个设备调用了几十次, 那就必须几十个实例都重来一遍。

     

    而这还不算完。

     

    谁敢保证这一次接口的变更就是后一次了呢?下一次如果还需要修改,就需要原样再来一次。

     

    估计换谁, 都受不了这种折腾。

     

    而这也是标准化编程的大忌。

     

    貌似许多人对标准二字有误解,看到我提出的标准化,就有些不服气。你万某有何德何能提出标准,俺们智力才艺都不比你差,凭什么要遵循你提出的标准,凭什么用你的标准而不是我自己的标准?我们国家历史上因为技术标准落后一步而受制于人,吃的亏大了去了。可不能重蹈这样的覆辙!

     

    而另外有一些人,则强调没有办法做到整齐划一的标准。理由是设备配置千差万别,没有一模一样的设备, 所以做不到标准化。

     

    错啦!都是属于对标准化的误解。 我们追求的标准化,是把系统做成搭积木一样的标准模块,每个模块自成体系,逻辑互不干扰。 通过接口与其他系统模块对接,不同的系统设计, 在接口不变的情况下,只需要更换相应的模块,即可以实现快速组装。

     

    而接口,也不是一尘不变的,可以根据需要随时改进,而在接口改动的时候,也只是对接的模块之间局部变更, 不要影响到整个系统。 不会因为接口的改动,而需要系统重新调试。

     

    甚至,我现在推广了二期标准化示例项目之后,下一步的计划就是对接口的优化升级。过去,我在开发阶段,采用的接口只是借用的别人以前做的, 现在终于有精力,腾出手来,把接口改造为我满意的样子。

     

    而我和我的团队成员,丝毫不需要担心接口的更改会导致影响到已有逻辑模块的运行, 甚至带来bug。

     

    这就是标准化设计的优势。心不累。不需要和以前一样,程序中改动一点点就紧张万分,就担心把整个系统原本正常运行的功能搞崩溃。  

     

    所以,我在开发SMART 200标准化架构的时候,首先就意识到子程序(库函数)接口不能更改的这个问题很严重。并认为有可能是众多人都不愿意投入精力在SMART 200系统做标准化的主要原因。

     

    所以首当其冲必须解决这个问题。

     

    我在写文章《【万泉河】SMART200也能做标准化》时, 提到了我解决了其中一些关键细节,其实其中个便是搞定了子程序可修改的问题。原本是我打算在培训课上首先传授给学员的课的内容。 趁这次征文机会,写出来, 与大家分享。

     

    而实现方法,其实很简单。

     

    即利用程序块的导出功能,把调用被改动的子程序导出为AWL的文本文件:





    然后在文本文件的调用中,修改到符合新版本的函数的语法,再重新导入即可。

     

    这里存在的问题是,不管是导入还是导出,操作之前软件都会自动编译,编译通过后才可以进行。 所以导出必须在修改接口之前,而在修改接口之后,导入之前, 需要把相应的SUB内发红的段落先删除。

     

    因而实时的存盘备份非常重要。 千万不能上来就改接口改子程序的逻辑,改过之后发现既不能导出又不能导入,那就尴尬了。

     

    由于AWL文件中是值寻址的,所以界面非常不够友好。 我通常是在文本修改阶段,只管语法正确,比如增加的数值变量,就先填上AC0,如果是离散变量,则暂时输入L0.0,等导入成功之后,在梯形图界面下,根据实际需求,更改为正确的变量。

     

    当然啦,如果有可能,尽量直接用搜索替换比如把原有的”AC0”替换为“AC0,AC0”。速度会快很多。

     

    所以,在使用标准规范中也包含了同一个类型的设备对象,尽量在同一个SUB中调用。 这样导出修改接口的时候只搞这一个文件即可。 而不必在整个程序范围去找,去把整个程序的SUB都导出来手工修改。

     

    那样儿,仍然会很累。

    2、IGBT拆卸回装时,用记号笔做好标记(V12-1......V12-6),注意IGBT安装方向不要按错;拆卸IGBT时可以先留下一个螺丝,防止IGBT滑落损坏;

    3、风机清扫完毕回装时,风机线固定要牢固可靠,防止剐蹭短路,必要时用两个扎带固定;

    4、IGBT涂导热硅脂时要均匀,不是越多越好,IGBT严禁用手直接触摸,防止静电击穿IGBT;

    5、紧固IGBT时好用力矩套筒打一下力矩;IGBT固定力矩6N,具体看螺丝大小;

    6、电容值正负铜排中间白色绝缘纸不要装反,否则会引起正负铜排短路,非常危险;

    7、电容组母排拆卸前,一定用记号笔做好标记,便于电容组回装;

    8、IGBT二极管压降和其他相比下降较多时,好更换;

    9、IGBT漏电流测量步骤:GE短接,CE加压测量漏电流;漏电流较大时也要更换IGBT;

    10、RRU整流晶闸管功率单元漏电流测量步骤AK加电压测量;漏电流较大时也要更换(正常0.008ma,有问题的15ma);


    西门子CP1612网卡






    http://www.hyzdhxt.com