我在CJ1W-CT021卡上出现此错误。它在运行程序一段时间后突然发生。我怎么发现它是通过IO表和单位设置。单击该卡的参数,找到两个红色设置。
输出控制模式和/或计数器输出模式。这是在阅读
Output Control Mode = 0x40 No Applicable Set Data
And/Or Counter Output Patterns = 0x64 No Applicable Set Data
不知道这些如何或为何会改变它们应该是
Output Control Mode = Range Mode
And/Or Counter Output Patterns = Logically Or
我添加了一些新的代码,但没有什么大的,甚至没有用过,因为我已经跳出了新梯级的输出。我认为可能导致这一点的一件事是程序的每个循环都在检查连接到该卡的编码器的值。也许检查它太过分了?无论如何,如果有人知道这些做什么或如何改变请发布。 谢谢 格伦
编辑..我想添加我使用的位,不要认为这些卡内部io的一部分但我可能是错的?
Work bits 66.01 - 66.06 , 60.02 - 60.07 , 160.12, 160.01 - 160.04, 161.02, 161.03
和
Data Bits (D)20720, 20500, 20600, 20000, 20590, 20040
答案 0 :(得分:2)
我会检查CT021 manual的第4-1到4-2-4节 - 确保你没有写入用于CT021单元配置数据的保留存储单元。
编辑:
1)检查上述手册的第26页,查看机器开关设置的位置。底部刻度盘设置'1位数,顶部刻度盘设置'10位数(即机器号可以是0-99);
2)每94页,D-Memory从D20000 + (N X 100)
(400字)分配,其中N等于机器编号。
我猜你的机器号设置为0(即:两个拨号都在'0'),5或6.如果机器号为'0',这将使保留的DM范围{{1 }}。在这种情况下(参见第97,105页)D20000 -> D20399
将包含D20000
(位00-07)和Output Control Mode
(位08-15)的配置数据。看起来您正在将Counter Output Patterns
写入0x6440
(或分别针对机器编号5或6的D20500,D20600),并且正在破坏配置数据。
如果您的机器编号为0,则远离D20000
,除非您直接尝试修改计数器的配置状态(即:不要在您的程序中使用它们!)。
如果机器编号为1,则同样适用于D20000-D20399
等。如果您有多个计数器,它们可以重叠范围,因此它们应始终设置为彼此相距4的机器编号。