问题1、莫名其妙的数组越界 ,调试的过程中修改FB时出现
解决办法:将索引定义在数组之前。
-------------------------------------------------分割线-------------------------------------------------
问题2、程序轴突然挂掉,全部Errorstop,复位后可正常运行。
解决办法:将IO从站放在主站后,或者重新给IO配置一个Task。设置FreeRun模式
如果以上不能解决,再增加总线周期。如将500us加到1000us。
上述为程序崩溃时,可使用Call Stack查看崩溃在哪个程序和哪一行,非常方便。
-------------------------------------------------分割线-------------------------------------------------
问题3:符号表Build后,下载程序报内存报错,不能下载
解决办法:关闭符号表配置,重新打开,重新Build。
问题4:网络视图不能打开,本地视图正常运行。端口正常使用
解决办法1:网络起始视图不可以有中文名称,Codesys软件bug
解决办法2:界面显示使用了数组,程序内部没有对数组进行保护。例如数组定义是Ary[1..10]。实际使用时,传入了Ary[0],或者Ary[11]。一般是程序在进行数据记录,累加索引参数,可以通过隐式检查,找到对应程序行
问题5:读取6041状态字 发生功能块报错
解决办法:在轴建立通讯后再调用该功能块执行,即可成功读取
问题6:Bool类型和Byte类型做联合体读不到数据
解决办法:Bool在Codesys中定义为1个字节,需要读byte类型的二进制位Bool值,直接用上图用法读即可。
问题7:codesys的SM3_Basic库报错,需要源代码支持
问题原因:MC功能块取到了轴的空值或轴的空指针
解决办法:将所有轴有关的轴指针,放到程序引用的最开头,以防止空指针的问题.
问题8:找不到控制的IP
问题原因:已知网段不知道具体IP
解决办法:在CMD输入以下脚本,回车执行
@for /l %i in (1,1,255) do @ping -n 1 -w 40 192.168.1.%i & if errorlevel 1 (echo 192.168.1.%i>>na.txt) else (echo 192.168.1.%i>>act.txt)
按enter键开始查询(也可直接复制命令到cmd窗口);
其中“0%丢失”的就是目前在线的主机IP地址,100%丢失则代表无法ping通,说明主机不在线。