Jeff watched the assembly pallet travel into the torque station and stop. He saw the "PALLET HOME" icon on the LCD screen change from red to green and then the message bar displayed "LOWERING DRIVERS". The six electrical torque drivers dropped down onto the six screws of the gearbox and the "DRIVERS DOWN" icon changed to green. The drivers should have started and torqued the screws to secure the cover on the gearbox, but they didn't. He waited the fifteen seconds he'd programmed into the control computer and then saw the message bar display "DRIVER FAULT -- ABORTING CYCLE".
"Dammit", he said under his breath as he looked at the program displayed on his laptop. "There's nothing wrong. Why didn't the damned drivers drive?"
He looked at his watch and breathed "dammit" again, because it was already five-thirty. He should have been on his way home half an hour ago, but here he was, trying to get the damned machine to work like he'd designed it to work. Any other day, he'd have called it quits, packed up his laptop and gone home. Today, he couldn't. The customer was due to arrive at eight the next morning to witness a trial run of the equipment and inspect a sample of the gearboxes produced. If the assembly line didn't work, his company would fail the trial run and that would endanger their chances of getting another contract from that customer.
He turned to Teresa Barnes, the technician assigned to him until the assembly machine was up and running.
"Are you sure you checked all the limit switches?"
"Yes, I am. They're all there and they all work. I checked each one with a meter as well as with your display."
"Well, can you check them again? Something is keeping the drivers from starting and I can't see any problems with the program."
Teresa smiled.
"I'll check 'em again, but they're fine. It has to be your programming."
It's just like Bart says, thought Jeff. Technicians think everything's the engineer's fault because they've never made a mistake in their lives. It would be bad enough if she was a man, but she's a woman and she's not even a pretty woman. Her hair is all jammed up under a ball cap and her clothes are so loose they just hang off her body.
Fifteen minutes later, Teresa climbed the stile over the pallet conveyor from the inside of the assembly line.
"I checked all the limit switches and they operate in manual. I checked all the cables from the limit switches back to the control cabinet. I checked all the wiring from the bulkhead fittings to the input modules. In manual, everything works like it should. Run it in auto once and I'll watch the input modules."
Jeff started the cycle, and when the LCD display said the drivers were down, Teresa yelled, "All the input modules show true, but the output for the drivers didn't come on."
Jeff already knew that because the driver cycle faulted again. He was going over his program again when Teresa walked up beside him.
"Could I look at your program?"
"You think you'll know what you're looking at?"
Teresa grinned.
"Maybe. You're programming in C++, right? I sorta taught myself how to program in C++ with one of those little microcomputers. I can't make it do anything really fancy like this machine, but I can make it turn lights on and off and make a buzzer buzz."
Jeff backed away from his laptop. He didn't think Teresa would find anything, but if he didn't let her try, she'd probably tell all the other techs he was an egotistical ass. They already thought most engineers were asses, but Jeff had a reasonably good reputation with them and he didn't want to screw that up. Without the cooperation of the techs, a project could stretch beyond the allotted timing and cost the company money in overtime.
"Have at it."
Teresa paged down through the lines of code until she found his annotation that said "start drivers". After reading that line of code, she asked him where his I/O subroutines were. Jeff showed her his printed copy and Teresa studied some more, then turned to Jeff and grinned.
"Found it, I think. You're sending a hex number to the module interface to turn on the output modules, aren't you? That's what I do with my little microcomputer to turn things on and off. When I built this control, your prints said to label the input modules as address 0111000 through 0111100 and the output modules as address 110000 through 111110. The output channel to start the drivers is address 111101. That's 3d in hex but your program is sending 3e and that's output 111110. There's an output at 111110 so you won't get an error for setting it, but there's nothing connected to it. Run it again and I'll watch that output."
After the driver cycle aborted again, Teresa backed out of the control cabinet and grinned.
"That's the problem. If you change that 3e to 3d, I'll bet it works."
Jeff made the change, re-compiled, and then started the cycle. He held his breath when the drivers dropped onto the gearbox, and then smiled when the drivers all drove the screws to their required torque. They then retracted like they were supposed to do, and the station released the pallet to the inspection station. That station and the rest had already been verified, so he was done. Jeff turned to Teresa.
"Thanks, Teresa. You saved us from failing tomorrow. I've been over this damn program a thousand times and never saw the mistake. I must have converted the numbers wrong."
Teresa grinned.
"Nah, you just fat-fingered it when you typed it. I've done it before. Well, you get to go home now. I still have to re-route and tie down all the cables I cut loose tonight so they'll be nice and neat tomorrow."
"They'll never look at your cables. They'll only want to see it work."
"Yeah, probably, but I'll know it's not right. Now, get outa here. I'll see you in the morning."
}|{