This forum is addressing industrial automation design & engineering, operations, asset performance, cyber security and digital transformation for Plants & Machines.
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send InviteCancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2022-06-2307:52 AM
BMX EHC 0800 counting module sync problem
Hi,
We have some problems with the EHC 0800 counter card (the CPU is M580). We use it as up/down counter. The direction is set by connecting the IN_AUX input
to a DDO 1602 channel so the program can control the counting direction (it's necessary
because it seems to be impossible to control the direction from software). We try to reset the counter using the force_sync command (the preset value is zero).
We use the following flags in the module structure:
force_reset - we set it as force_reset := first_scan
force_enable - it is always set to true in every scan
force_sync - see these below
sync_ref_flag
sync_reset
The goal is to change the direction (using the DO) and sync the counter value to zero. The algorithm is the following (in the PLC it is implemented in ST):
// <variable>_rtrig - rising edge of the <variable> for a scan
// <variable>_ftrig - falling edge <variable> for a scan
if <change_direction_needed_rtrig> {
force_sync = true;
DDO = <new direction>;
}
if sync_ref_flag_rtrig {
sync_reset = true;
}
if sync_ref_flag_ftrig {
force_sync = false;
sync_reset = false;
// The reset is done if we are here
}
The issue is:
The reset procedure always takes 16-20 PLC scans. It is weird the scan time does not matter. In the case of 2 ms scan time it takes as many scan as with 10 ms scan time.
Sometimes the sync does not happen. The counter keeps the old value and the sync_ref_flag remains true.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2022-06-2409:11 AM
Finally we found out.
The flags in the module structure are NOT ebools. These are simple bools, their rising/falling edges cannot be detected using RTRIG/FTRIG blocks. The solution is simple. The code must use the values instead of edges.